You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Lambda表达式从Dog对象数组提取指定成员值并存储为列表

解决Kotlin中提取符合条件的Dog对象名字并存储为列表的问题

嘿,我明白你碰到的问题啦!你之前用forEach的写法没法把结果存成字符串列表,核心原因是**forEach是个没有返回值的终端操作**——它只是帮你遍历每个符合条件的Dog,执行it.name这个动作,但不会把这些名字收集起来返回给你。

要正确拿到字符串列表,你得用map来替换forEach,map的作用就是把集合里的每个元素转换成你想要的类型,同时返回一个全新的集合。正确的写法应该是这样:

// 得到存储符合条件狗狗名字的字符串列表
val filteredDogNames: List<String> = dogs.filter { it.age > 5 }.map { it.name }

如果之后你想把这个列表转成逗号分隔的字符串,别用join哦,Kotlin里对应的方法是joinToString,直接追加在后面就行:

// 得到逗号分隔的狗狗名字字符串
val dogNamesString: String = dogs.filter { it.age > 5 }.map { it.name }.joinToString(", ")

简单总结下:filter帮你筛选出年龄超5岁的Dog,map把每个Dog转换成它的名字属性,这样就能直接得到你需要的字符串列表啦,之后不管是存起来还是转换成格式化字符串都完全没问题~

内容的提问来源于stack exchange,提问作者Joel Broström

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:20:26