假设有一个Person具有属性的类name,并且age有一个persons包含 n 个 person 对象的列表。persons除此之外,还有其他更有效的方法从列表中创建年龄列表吗:
val age_list= ArrayList<Int>()
for(person in persons){
age_list.add(person.getAge())
}
Run Code Online (Sandbox Code Playgroud)
End*_*eit 21
您可以简单地将一个列表映射到另一个列表。
val ageList = persons.map { it.age }
Run Code Online (Sandbox Code Playgroud)
您还可以用函数引用替换显式 lambda。
val ageList = persons.map(Person::age)
Run Code Online (Sandbox Code Playgroud)
如果您需要有一个ArrayList<Int>as 结果,您可以使用该mapTo函数映射到 anArrayList<Int>而不是默认的List<Int>.
val ageList = persons.mapTo(arrayListOf()) { it.age }
Run Code Online (Sandbox Code Playgroud)
这假设您有一个数据集:
data class Person(val name: String, val age: Int)
val persons = listOf(
Person("Pete", 31),
Person("Luna", 19),
Person("Hendrick", 45),
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10011 次 |
| 最近记录: |