Kotlin中是否有类似joinToString的方法可提取列表内Int类型属性集合?
Kotlin自定义对象列表属性提取方案
你需要的能力可以通过Kotlin集合内置的map扩展函数实现,和你用到的joinToString一样,map内部已经封装了遍历逻辑,不需要手动编写循环代码。它会按照你传入的转换规则,将原集合的每个元素映射为新的元素,最终生成对应类型的新集合。
示例代码如下:
// 承接你给出的Person类定义和列表初始化逻辑 data class Person(val age: Int, val name: String) val p1 = Person(23, "Smith") val p2 = Person(41, "Bob") val p3 = Person(16, "Scott") val li = listOf(p1, p2, p3) // 提取所有age属性,生成Int类型的List val ageList: List<Int> = li.map { it.age } // 验证输出 println(ageList) // 输出结果:[23, 41, 16]
你还可以根据场景搭配其他集合函数使用:
- 如果要过滤掉属性为空的无效值,可以改用
mapNotNull方法,避免空值进入新集合 - 如果需要提取属性后直接去重,可以搭配
distinct()方法,写法为li.map { it.age }.distinct() - 如果需要将结果转为可变集合,可以用
mapTo方法指定目标可变集合对象
内容的提问来源于stack exchange,提问作者love Croquembouch
相关产品推荐
相关产品推荐

