我有一个 items
的映射,键是项目标识符,值是 Item
对象。
每个 Item 对象都具有 id
(字符串标识符)和 container
(它所属的容器)等属性。 Container
也是一个具有许多属性的对象,但这里只需要 id
。
我想获取所有容器标识符的列表(不重复)
val containersIds : Set<String> = items.values.groupBy { item -> items.getValue(item.id).container.id }.keys
它可以完成这项工作,但也许除了使用 groupBy
和 keys
之外还有其他用途。
有什么想法吗?
答案 0 :(得分:2)
您只想要每个项目的容器的 ID,不要重复?
items.values().map { it.container.id }.distinct()
或者因为您无论如何都想要Set
,所以您可以免费获得唯一性!
items.values().map { it.container.id }.toSet()
或者跳过 values
列表,直接处理条目
items.map { (_, item) -> item.container.id }.toSet()