Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 对于本案例,是否有“groupBy”的替代方案?_Kotlin_Functional Programming - Fatal编程技术网

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()