Kotlin 对于本案例,是否有“groupBy”的替代方案?
我有一个Kotlin 对于本案例,是否有“groupBy”的替代方案?,kotlin,functional-programming,Kotlin,Functional Programming,我有一个项目的映射,键是项目标识符,值是项目对象 每个项对象都有属性,例如id(字符串标识符)和容器(它所属的容器)。Container也是一个对象,它有许多属性,但这里只需要id 我想得到所有容器标识符的列表(不重复) val containersIds:Set=items.values.groupBy{item->items.getValue(item.id).container.id}.keys 它可以完成这项工作,但可能除了使用groupBy和键之外还有其他功能 有什么想法吗?您只需要
项目的映射
,键是项目标识符,值是项目
对象
每个项对象都有属性,例如id
(字符串标识符)和容器(它所属的容器)。Container
也是一个对象,它有许多属性,但这里只需要id
我想得到所有容器标识符的列表(不重复)
val containersIds:Set=items.values.groupBy{item->items.getValue(item.id).container.id}.keys
它可以完成这项工作,但可能除了使用groupBy
和键之外还有其他功能
有什么想法吗?您只需要每个物品容器的ID,没有重复项
items.values().map { it.container.id }.distinct()
或者,既然你想要一个集合
,你就可以免费获得唯一性
items.values().map { it.container.id }.toSet()
或者跳过值
列表,只处理条目
items.map { (_, item) -> item.container.id }.toSet()