如何在Kotlin对象列表中提取单个字段值列表
提取Kotlin对象列表中的单个字段值
嘿,这事儿在Kotlin里简直是小菜一碟!你只需要用标准库提供的map扩展函数,就能轻松把对象列表转换成指定字段的列表。
完整实现代码
咱们直接修改你的代码来实现需求:
fun main(args: Array<String>) { println("Hello World") val memberList = listOf(Member("hong", 10), Member("kil", 10)) // 提取所有name字段值到新列表 val nameList = memberList.map { it.name } println(nameList) // 输出: [hong, kil] } // 注意:Kotlin类名建议首字母大写,这是通用编码规范哦 data class Member(var name: String, var age: Int)
关键代码解释
memberList.map { it.name }:map函数会遍历集合中的每一个Member对象,把每个对象转换成它的name属性值,最终返回一个只包含name字符串的新列表。- 这里的
it是Kotlin的隐式参数,代表当前遍历到的Member对象,你也可以显式命名让代码更清晰,比如memberList.map { member -> member.name },效果完全一致。
额外小提示
如果你的列表里可能存在null对象,或者name字段本身可能为null,可以用mapNotNull来自动过滤掉null值:
// 模拟存在null的场景 val nullableMemberList = listOf(Member("hong", 10), null, Member("kil", 10), Member(null, 20)) val nonNullNameList = nullableMemberList.mapNotNull { it?.name } println(nonNullNameList) // 输出: [hong, kil]
内容的提问来源于stack exchange,提问作者Taehyung Kim
相关产品推荐
相关产品推荐

