【发布时间】:2016-01-13 15:25:35
【问题描述】:
我已经开始使用 Kotlin 作为 Java 的替代品,并且非常喜欢它。但是,如果不跳回java-land,我就无法找到解决方案:
我有一个Iterable<SomeObject>,需要将其转换为一个列表,以便我可以多次迭代它。这是不可变列表的一个明显应用,因为我需要做的就是多读几遍。但是,我实际上如何将这些数据放在开头的列表中? (我知道这是一个接口,但我一直无法在文档中找到它的实现)
可能的(如果不满意)解决方案:
val valueList = arrayListOf(values)
// iterate through valuelist
或
fun copyIterableToList(values: Iterable<SomeObject>) : List<SomeObject> {
var outList = ArrayList<SomeObject>()
for (value in values) {
outList.add(value)
}
return outList
}
除非我有误解,否则这些都以MutableLists 结尾,它有效,但感觉像是一种解决方法。是否有类似的immutableListOf(Iterable<SomeObject>) 方法可以实例化不可变列表对象?
【问题讨论】:
-
请扫描 Kotlin 标准库参考中的集合和不同的集合类型,以了解与
toList()kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections 类似的许多其他功能
标签: immutability kotlin