在 Kotlin 中,我创建了一个扩展函数来使用自定义项初始化新的 ArrayList,如下所示:
fun <T> arrayListFrom(vararg item: T): ArrayList<T> {
return item.toMutableList() as ArrayList<T>
}
这样我就可以轻松创建这样的数组列表
arrayListFrom(MyCustomItem(1), MyCustomItem(2))
...无需创建一个新的空元素,并将所有元素一一添加到其中
Kotlin 有很多有用的集合函数,我无法想象我需要这个扩展来轻松初始化 arrayList,但找不到其他简单的方法。我在这里错过了一些有用的 Kotlin 函数吗?
arrayListOf(items)
所以你可以这样做
arrayListOf(MyCustomItem(1), MyCustomItem(2))
还有一种更简单的方法来初始化 ArrayList,而不是一行。
object: ArrayList<instanceType>() {
init{
add(instance1)
add(instance2)
}
}
另一个巧妙的技巧是利用 Kotlin 的基本数组类型。它的构造函数有一个可选的 init 函数,它允许像这样的酷而简单的初始化
val newArray = Array(2) { MyCustomItem(i+1) }
这将使 [ MyCustomItem(1), MyCustomItem(2) ]
。
要从中获取 arrayList,只需将
toCollection(ArrayList())
添加到末尾即可,如下所示
val newArrayList = Array(2) { MyCustomItem(i+1) }.toCollection(ArrayList())
然后很快!创建数组,并将项目发送到目标 arrayList。你可以根据需要使用arrayList,而且只用一行就完成了!
免责声明:考虑到幕后涉及的传输,它可能会更慢,所以当然要小心使用!