Kotlin中如何通过快捷方式从用户数组提取用户名数组?
Kotlin 中一行代码实现集合元素转换的方案
当然可以!Kotlin 的标准库专门为这类集合转换场景提供了简洁的函数式API,完全能把你那段代码压缩成一行,而且可读性更强。
你原来的代码是手动遍历 users 集合,逐个提取 name 属性并添加到新的 ArrayList 中,用 Kotlin 的 map 操作符就能直接完成:
val userNames = users.map { it.name }
这行代码会返回一个 List<String>,如果你的场景确实需要具体的 ArrayList 类型(而不是只读的 List),可以用 mapTo 函数直接指定目标集合类型:
val userNames = users.mapTo(ArrayList()) { it.name }
或者也可以在 map 的结果上调用 toArrayList() 方法:
val userNames = users.map { it.name }.toArrayList()
本质上,map 函数就是帮你封装了遍历、转换、收集结果的整个过程,是 Kotlin 函数式编程风格的典型应用,比手动写循环要简洁得多,也更符合现代编程语言的表达习惯。
内容的提问来源于stack exchange,提问作者Valentin
相关产品推荐
相关产品推荐

