问题标签 [groupingby]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
30694 浏览

java - groupingBy 后排序列表

我想知道,流(或收集器)中是否已经实现了将列表排序为值的功能。例如,以下代码都生成按年龄排序的按性别分组的人员列表。第一个解决方案有一些开销排序(看起来有点邋遢)。第二种解决方案需要对每个人进行两次检查,但要以一种漂亮的方式完成工作。

首先排序,然后在一个流中分组:

首先分组,然后对每个值进行排序:

我只是想知道,如果已经实现了一些东西,它会在一次运行中做到这一点,比如groupingBySorted.

0 投票
1 回答
221 浏览

java - 如何使用 Java 8 groupingBy 收集到不同类型的列表中?

我正在尝试获取 type 的地图A -> A,并将其分组为A to List<A>. (也颠倒了键值关系,但我认为这不一定相关)。

这就是我现在所拥有的:

我想在单个语句中执行此操作,并且我觉得必须可以将 to 转换Map<Thing, List<Map.Entry<Thing, Thing>>>为操作Map<Thing, List<Thing>>的一部分groupingBy

我试过使用reducing()自定义收集器,我能找到的一切;但由于缺乏复杂的示例,以及我能找到的少数类似示例List.of()在 Java 8 中不存在(Collections.singletonList()似乎不是一个好的替代品),我感到很困难。

有人可以帮我解决可能很明显的问题吗?

0 投票
4 回答
110 浏览

java - Java StreamsortingBy 和 filter()

我有一个关于 Java 8 流的具体问题。即使听起来不太复杂,我也找不到任何接近解决我的问题的方法。

我想将 aList<Person>转换为Map<Company, List<Person>>. 该公司是一个枚举。现在Map应该按Company(到目前为止,我一切正常。在我想通过一个属性过滤所有的之后: 的名称List<Person>。我只想让里面有最长名字的人。示例:MapPerson

这是我到目前为止得到的:

过滤功能在这里不起作用。我想要的输出是:

有没有人有好的知识可以帮助我!

0 投票
2 回答
104 浏览

java - 如何转换地图> 到地图> 使用 Java8 流

如何转换Map<X, Map<Y,Z>>Map<Y, Map<X,Z>>使用 Java8 流。

输入:

输出:

0 投票
2 回答
148 浏览

java - 通过将彼此相邻的 **only** 重复元素分组来将列表拆分为子列表

有没有一种简单的方法通过仅将彼此相邻的重复元素分组来将列表拆分为子列表?

带有以下字符串列表的简单示例:

如果我从 java 流中使用 groupingBy,那么所有相等的元素都将最终出现在同一个子列表中,我想避免这种情况。有任何想法吗?

0 投票
2 回答
140 浏览

java - 结果为 List 的 GroupingBy

我们有以下内容:

是否有可能避免代码中的第二个 stream() 路径,所以 groupingBy() 的结果在我们的例子中应该是一个列表。我们需要传递 map() 函数来收集或分组的可能性,这在 Java 8 中可能吗?

0 投票
2 回答
281 浏览

java - Java 8 groupingBy 用于地图列表

我有一个地图列表,我想按名称对其进行分组

我尝试将它们分组

我想要的是

我希望将所有其他键分组在一个列表中但我得到的是

我如何将除名称之外的所有其他键分组到上面预期的列表中?

0 投票
1 回答
237 浏览

java - 按前 3 个字符进行流分组

我有一个电话号码列表,我曾经按国家(德国号码)/国际(世界其他地区)分组。示例列表如下所示:

以及按前缀“+49”分组的方法

然后我不能用 true 或 false 调用该方法来将数字分隔为国家/国际

但现在要求发生了变化,我必须按国家/地区对数字进行分组。目前只有四个国家。但以后可能会添加更多。为此,我考虑了以下几点,但如果我必须对更多国家进行分组,那就很复杂了。

并称之为:

有人可以告诉我应该如何做到最好——也许不用一直延长开关块?我想要类似的东西:

0 投票
1 回答
76 浏览

java - 使用 Java8 流按列表中的枚举参数项排序

假设我有一个墙列表 listOfWalls 并且每个墙对象都有以下层次结构:

所以为了在这个列表中获得一些墙的 wallMaterialType,我想

现在 Wall 类也有以下参数:通过从 Wall 类调用我的函数widthheight它们相乘得到墙的面积。getWallArea()

我想要实现的是从计算的墙壁列表中获取所有 wallMaterialTypes 的面积,因此例如假设我们有 2 面墙:

  1. 具有以下 wallMaterialTypes 的墙 1:砖、石膏、木材和 35 平方米的 wallArea()。
  2. 具有以下 wallMaterialTypes 的墙 2:干草、石膏和 105 平方米的 wallArea()。

现在我想要的输出是:

到目前为止,我的代码看起来像这样

从那里我不知道怎么走?帮助表示赞赏。

0 投票
2 回答
82 浏览

java - 爪哇。groupingBy throw to classes

我不能编写一个收集器来计算每个帐户(即按帐号)的交易总额(长类型,而不是整数)。收集器将应用于事务流。如何使用 groupingBy 这个链 Transaction -> Account -> Number ?

}