嘿,我有一个对象列表,其中我想将title property值组合成对象列表。我做得很成功,没有任何问题。我的主要问题是,在kotlin中有什么更好的方法可以做,这有助于高效、更好的内存管理,以及当eventList更大时的一切。
CombineList.kt
fun main() {
val newList = mutableListOf<String>()
val eventList = createData()
eventList.forEachIndexed { _, event ->
val title = event.tit
你好,我尝试从kotlin中的普通列表构建一个链接列表。我试图在我已经写好的init块中这样做。我不知道如何将传递的人初始化为链接列表。
data class Human(val name: String, val nameTwo: String, val age: Double, val size: Int)
class LinkedListLibrary(list: List<Human>) {
data class HumanNode(val human: Human, var next: HumanNode?)
private var first: H
如何在Kotlin中迭代两个列表?我希望将一个列表中的每个值分配给另一个列表中的等效textview,比如1:1赋值。
类似于下面的内容允许并行迭代,但它被执行了两次:
data class Total(val area : Double)
private fun assign(
allArea: List<Double>, allTextViews : List<TextView>
) : Total {
var totalArea = 0.0
allArea.forEach { double ->
val value
我有一些列表,我做了list.ForEach( l => { ... something ...})。现在,在某些情况下,我需要停止遍历列表,但是break不能工作--我得到"Control cannot leave the body of an anonymous method or lambda expression“编译错误。
你知道如何克服这个限制吗?
我一直试图将Java用于表达式转换为Kotlin,它生成以下序列:
1,2,4,8,16,32,64
这是Java代码:
for(int i = 1; i < 100; i = i + i) {
System.out.printf("%d,", i);
}
我发现翻译成Kotlin的唯一方法是:
var i = 1
while (i < 100) {
print("$i,")
i += i
}
我尝试过使用step表达式,但这似乎不起作用。有什么方法来表达这种类型的序列更优雅地在科特林?
我知道您可以使用Kotlin
我是Kotlin的初学者。如何解释以下代码片段?
fun main(args: Array<String>) {
var k = listOf<Double>(1.2,77.8,6.3,988.88,0.1)
k.forEach(::println)
}
这很好,并给出了列表,但是有人能帮助解释k.forEach(::println)到底是如何工作的吗?
我正在写一个用Kotlin写的游戏,并且正在研究如何提高GC的效率。搅拌的主要来源之一是主游戏/渲染循环中调用的for-循环,这会导致迭代器的分配。
关于文件,我发现这一段:
数组上的for循环编译为不创建迭代器对象的基于索引的循环。
如果您想用索引迭代数组或列表,可以这样做:
for (i in array.indices)
print(array[i])
请注意,这个“通过范围的迭代”被编译成最佳实现,没有创建额外的对象。
这是真的吗?为了验证,我使用了这个简单的Kotlin程序并检查了生成的字节码:
fun main(args: Array<String>
我有一份物品清单
val itemList = mutableListOf<Item>()
此列表由单独的代码填充,其大小为未知,但不超过5。
我有5个不同的函数,它们以项为参数,并根据索引对项执行操作。
fun operation1(item:Item)
fun operation2(item:Item)
fun operation3(item:Item)
fun operation4(item:Item)
fun operation5(item:Item)
现在,我想在itemList上迭代,并根据其索引对每个项执行不同的操作,以避免IndexOutOfBoundsExcept
我试图写更多的习惯Kotlin代码,我被困在最好的方法来重构这个如果条件。基本上,当条件(如果为true )(片段是片段列表中的GenericActionsBottomSheetDialog实例)时,我返回函数本身。
这是我所拥有的,也是我如何重构它的。是否有更好的方法来实现这一点?在我的重构之后,情况变得更糟了:
重构前:
supportFragmentManager.fragments.iterator().forEach {
if (it is GenericActionsBottomSheetDialog)
ret
使用kotlin,我可以至少以两种方式重复操作:
val times = 5
// First option
for (i in 0 until times) {
print("Action $i")
}
// Second option
repeat(times) {
print("Action $it")
}
我想知道的用途。
如果可能的话,应该用for函数代替传统的repeat循环吗?
或者这个函数有特殊情况吗?
repeat函数有什么优点吗?
编辑
我对这个问题做了一些研究。只要kotlin是开源项目,我就可以下
fun main() {
datum(datum)
}
val datum = "Bfasld |datum=July 13, 1996 |autor="
fun datum (test: String) {
var text : MutableList<String> = test.split("|") as MutableList<String>
println(text.forEach{println(it)})
val d = Datum()
text.forEach{ it
我有两个字符串列表。现在,我想将第一个列表中索引i处的每个单词替换为第二个列表中一个句子索引i处的单词。
所以如果我有
list a=("am","I","my")
和
list b=("are","You","your")
我希望“我是个业余的”这句话变成“你是个业余的”
在Kotlin中(不使用for循环),最干净的方法是什么?
我有一个具有属性的父项和子项:
public class Parent
{
public bool IsValid { get; set; }
public Child ChildItem { get; set; }
public List<ChildListItem> ChildList { get; set; }
}
public class ChildItem
{
public bool IsValid { get; set; }
}
public class ChildListItem
{
public bool IsValid
有人能给我解释一下这段代码中的Kotlin 'it‘语法是如何工作的吗?这段代码很难读,有人把它发给我来解决我的问题,它就像魔术一样处理多个连续的请求。我以前用过Volley,但这段代码非常混乱。我相信Kotlin比Java更容易阅读,但是这个特殊的代码很难理解。 val responses = mutableListOf<JSONObject>()
val myAPIUrl = "https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins="
val
对于下面给定的代码,在Kotlin中,不可能执行函数forEach (或任何类似的东西,map、filter等等)因为BarList被嘲笑了。因此,不调用forEach和亲属的本机实现。在互联网上搜索了一下之后,我想到了以下几点:
public class BarList<E> extends AbstractList<E> implements OrderedBarCollection<E> {
//...
}
//...
val mockedList: BarList<Foo> = mockBarList()
val fooLis
我从Kotlin中的一个循环继续,但我从工作室得到警告,该标签不表示循环。有人能告诉我语法有什么问题吗?
以下是代码片段
newRooms.forEach roomloop@ { wallRoom: WallRoom ->
val index = rooms.indexOf(wallRoom)
if(index!=-1)
{
val room = rooms[index] //get the corresponding room.
//check i
我使用的是C# windows表单
我有一个来自类中函数的数组列表,我将函数调用为函数返回数组列表的形式,如何获得数组的值?
这是我的数组代码列表
public List<string[]> getAccounts()
{
List<string[]> account = new List<string[]>();
while (*condition*)
{
string[] users = new string[2];
users[0] = u
在Kotlin中,有没有一种函数方法可以遍历一个List<T>,得到一个反映当前/下一个元素的Pair<T,T>。 例如,命令式方法应该是这样的 for (index in 0 until list.size-1) {
val current = list[index]
val next = list[index + 1]
//do calculations on current/next.
} 像list.forEachPaired { it: Pair<String,String?> ->/
如何迭代“取(N)”--得到一个序列,每个内部序列都有下一个N元素?
我正在用Kotlin写一个高负荷的应用程序。
我有成千上万的条目要插入到数据库中。
我想把它们分批,比如说1000。
所以我创建了一个循环:
val itemsSeq = itemsList.iterator().asSequence()
while (true) {
log.debug("Taking $BATCH_SIZE from $itemsSeq")
val batchSeq = itemsSeq.take(BATCH_SIZE)
va