Par*_*ker 23 collections filter kotlin
如果我在Kotlin中有一个对象的集合,有没有一种快速的方法来获取这些对象的某个属性的集合?我查看了Kotlin的收集操作列表,但没有什么能让我感到高兴(但我可能忽略了一些东西)
在python中它将类似于:
[person.name for person in persons]
而且我更喜欢使用集合函数而不是:
var nameMap = mutableListOf<String>()
persons.forEach{person -> nameMap.add(person.name)}
Run Code Online (Sandbox Code Playgroud)
我非常缺乏过滤/ lambda函数以及除列表理解之外的任何知识,所以如果这是一个简单的问题就道歉
hol*_*ava 55
在Kotlin很容易做到:
// v--- the variable type can be removed
var nameMap: MutableList<String> = persons.map { it.name }.toMutableList();
Run Code Online (Sandbox Code Playgroud)
如果你想要一个不可变的List,它可以简化如下:
// v--- the variable type can be removed
var nameMap: List<String> = persons.map { it.name };
Run Code Online (Sandbox Code Playgroud)
或者使用函数引用表达式:
var nameMap = persons.map(Person::name);
Run Code Online (Sandbox Code Playgroud)
Khe*_*raj 17
如果要映射模型,请执行此操作。
var nameMap: List<Model> = persons.map { Model(it.name,it.number) };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17106 次 |
| 最近记录: |