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

Kotlin中如何校验两个对象列表中元素的指定字段是否存在相等值

Kotlin 两个用户组ID交集校验实现方案

你已知的any高阶函数可以直接复用,对应你需求的实现有两种常用写法:

基础嵌套写法(适合短列表场景)

直接嵌套两层any逻辑即可完成判断,代码简洁直观:

user.groups.any { userGroup ->
    otheruser.groups.any { otherGroup ->
        userGroup.id == otherGroup.id
    }
}

只要两个用户的组列表存在任意一个相同ID的分组,该表达式就返回true,无交集则返回false。

优化写法(适合长列表场景)

如果两个用户的组列表数据量较大,嵌套循环的O(n*m)复杂度会有性能损耗,推荐先把其中一个列表的ID提取为Set再校验,时间复杂度可降至O(n+m):

// 先提取另一个用户的所有分组ID存入Set,后续查询复杂度为O(1)
val otherGroupIds = otheruser.groups.map { it.id }.toSet()
// 校验当前用户的分组ID是否存在于上述Set中
val hasCommonGroup = user.groups.any { it.id in otherGroupIds }

内容的提问来源于stack exchange,提问作者Abhishek AN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:36:03