在这种情况下,是不是有 `groupBy` 的替代方法?
Posted
技术标签:
【中文标题】在这种情况下,是不是有 `groupBy` 的替代方法?【英文标题】:Is there an alternative to `groupBy` for this case?在这种情况下,是否有 `groupBy` 的替代方法? 【发布时间】:2021-04-01 03:12:23 【问题描述】:我有一张items
的地图,键是项目标识符,值是Item
对象。
每个 Item 对象都具有 id
(字符串标识符)和 container
(它所属的容器)等属性。 Container
也是一个对象,它有很多属性,但这里只需要 id
。
我要获取所有容器标识符的列表(不重复)
val containersIds : Set<String> = items.values.groupBy item -> items.getValue(item.id).container.id .keys
它可以完成这项工作,但除了使用 groupBy
和 keys
之外,也许还有别的东西。
有什么想法吗?
【问题讨论】:
【参考方案1】:您只想要每个项目的容器的 ID,没有重复项?
items.values().map it.container.id .distinct()
或者,既然您无论如何都想要Set
,那么您就可以免费获得唯一性!
items.values().map it.container.id .toSet()
或跳过values
列表,直接处理条目
items.map (_, item) -> item.container.id .toSet()
【讨论】:
以上是关于在这种情况下,是不是有 `groupBy` 的替代方法?的主要内容,如果未能解决你的问题,请参考以下文章
Python pandas:我们可以避免在 groupby/apply 这种情况下应用吗?