在这种情况下,是不是有 `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

它可以完成这项工作,但除了使用 groupBykeys 之外,也许还有别的东西。

有什么想法吗?

【问题讨论】:

【参考方案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` 的替代方法?的主要内容,如果未能解决你的问题,请参考以下文章

对于这种情况,each() 是不是有任何替代方法

Python pandas:我们可以避免在 groupby/apply 这种情况下应用吗?

Spark 中的 Window 与 GroupBy 性能

用于 ASP.NET Core 应用程序的 EF Code First 迁移替代方案

如何在这种情况下避免同步?

在这种情况下是不是有必要调用 flush()(JPA 接口)?