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

Kotlin中过滤ArrayList并获取单个对象的方法咨询

如何从ArrayList中过滤并获取单个User对象?

当然有合适的方法啦!你一开始用的filter函数其实会返回所有符合条件的元素组成的列表,直接赋值给User类型变量会出现类型不匹配的问题。

针对你想获取单个匹配对象的场景,Kotlin提供了专门的函数:find(或者它的别名firstOrNull),它会返回列表中第一个符合条件的元素;如果没有找到匹配项,就返回null,完全契合你的需求。

正确示例代码

// 先补充User类的定义,方便代码运行
data class User(val code: Int)

var array: ArrayList<User> = ArrayList()
array.add(User(123))
array.add(User(683))
array.add(User(329))

// 推荐用可空类型接收,避免无匹配时的空指针问题
val user: User? = array.find { it.code == 683 }

// 如果你能确保一定存在匹配元素,也可以用!!强制非空(但不推荐,更建议用安全调用或空判断)
// val user: User = array.find { it.code == 683 }!!

额外补充

  • find 和 firstOrNull 是完全等价的,只是命名不同,选哪个看你的个人习惯
  • 如果业务逻辑要求必须找到匹配元素,找不到就抛出异常,可以使用first函数,它在无匹配项时会抛出NoSuchElementException

内容的提问来源于stack exchange,提问作者מיכאל בלחסן

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:29:02