我有一班有两个成员,
class Class2(var obj2: SomeObject, var time: Long) {}
在主类中有一个这样定义的对象:
var obj: ArrayList<Class2> = arrayListOf()
现在我意识到我需要使用仅与从对象obj获得的obj2一起形成的ArrayList,这意味着:
var subobj = ArrayList<SomeObject> //extracted from obj
我知道我可以做到
until(i in 0..obj.size) {//etc}
但是,还有其他更实用的方法吗? (在科特林)
答案 0 :(得分:2)
如果我正确理解,您正在尝试获取一个列表,该列表不包含Class2
个对象,而是它们的值obj2
。您可以尝试使用Kotlin的map函数
var subobj = obj.map { it.obj2 }
这允许您传递将在列表中的每个项目上运行的转换。在这里,it
只是指您在obj
列表中正在查看的当前项目。这只会返回obj2
中每个项目的obj
值列表。