问题标签 [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 投票
4 回答
1622 浏览

java - Java 8 流对列表进行分组> 同上到新列表>

我有一个List<Map<String,String>> 例如:

我期望的结果是生成一个新的 List 映射,它按 date 分组,并且在同一 date 中设置的所有条目将放在一起,例如:

我尝试了以下方法,但始终不是我的预期结果。

此问题的一些附加评论:

我用 for LOOP 解决了这个问题,但是当列表大小约为 50000 时应用程序挂起,所以我寻求一种性能更好的方法来做到这一点。据我所知,Java 8 流平面图可能是一种方式。因此,关键点不仅是重新映射它,而且是用最高效的方式来做到这一点。

0 投票
1 回答
94 浏览

java - 以函数和自定义对象收集器为参数进行分组

我有以下要求,这可能很简单,但作为初学者,我想在这里寻求帮助。

我想按部门分组使用groupingBy(department, collector(Foo)). 任何人都可以帮忙吗?

0 投票
1 回答
90 浏览

java - 将 groupingby 与 java 流一起使用

我有一份学生名单,请参阅 DTO。

我正在尝试得出部分和会话的结果。例如:我们有一组具有不同部分和课程的学生:

现在我必须在考虑部分和会话的情况下得出总体结果。

所以对于上面的数据,我们应该看到:section-a, session:2020 has failed因为我们有一个不及格的学生。同样,对于第二组,即section-b, session:2020,结果应该通过,因为我们只有 1 个学生,结果也通过了


主要课程

我想过使用java流并执行groupby操作,这样我就可以得到这样的东西:

然后我可以使用上面的数据推导出最终的结果。我试过了,但似乎 key 不能是一个组合。还是有另一种方法可以实现这一目标?

请帮忙

0 投票
1 回答
446 浏览

java - Java 8 groupingBy 获取 LinkedHashMap 并将映射的值映射到不同的对象

我有这个返回地图的方法:

我需要我的地图是 LinkedHaspMap,但上面的代码似乎不起作用,因为键的顺序没有保留。我设法找到了另一种返回 LinkedHashMap 的方法,但是使用该语法我无法再进行映射操作(将 AccountManagement 映射到 ResourceManagementDTO)。这是代码:

有没有办法获取 LinkedHashMap 并在单个 Java 8 管道中执行映射操作?我真的想不出结合这两种操作的语法。

0 投票
2 回答
130 浏览

java - 对对象列表进行排序和分组

我有一个如下的过程对象列表

我的程序类就像

我想根据以下条件对对象进行排序和分组。

  1. 所有过程都应根据过程名称进行分组。
  2. 程序必须按程序日期的降序排列。[日期列表中的第一个元素,即procedureDate.get[0]]
  3. 组合在一起的相同程序应按日期的降序排列。

最终结果必须是,

我能够使用 Comparator 和旧的 java 代码来实现这一点。是否可以使用 java8 流、收集器和分组依据来实现相同的目标?

0 投票
1 回答
1247 浏览

java - Java 8:按多个字段分组,然后根据值排序

我有一堂课叫Info

我想Info按两个字段(帐户和机会)对列表进行分组,然后根据值对其进行排序。即分组排序前的信息列表:

分组排序后我期望的结果,

o/p 根据值排序(10->(5+4)->8->4->2)

到目前为止我已经尝试过=infos.stream().collect(Collectors.groupingBy(Info::getAccount, Collectors.groupingBy(r -> r.getOpportunity(), Collectors.toList())))但它是随机排序的。

0 投票
0 回答
97 浏览

java-8 - 基于可以为空的属性的对象列表分组

我有一个学生对象列表,如下所示。

我想根据 DOB 对学生进行分组,如下所示。

  1. 应根据学生姓名对所有学生进行分组。
  2. 学生必须按出生日期降序排列。
  3. 相同的学生分组在一起应该按出生日期的降序排列。
  4. 剩余的学生对象必须与输入列表中的顺序相同

喜欢,

我在这里找到了一个匹配的解决方案Sorting and Grouping on a list of objects ,但如果 dob 为空,它将不起作用。使用流在 java8 中有什么解决方法吗?

按照上面的链接第1步,我试过了

这里 getDob() 有时会返回 null 并抛出空指针异常。过滤器不是解决方案,因为它将完全避免学生将 dob 设为空。

0 投票
2 回答
969 浏览

java - 地图的分组和聚合列表

我有一个 List<Map<String, Object>> 输入,如下所示:

我正在尝试通过对 CURRENCY、PUBLISH_REGION、SOURCE 和 RECON_STATUS 列进行分组来创建另一个 List<Map<String, Object>>。并将所有唯一的 STATUS 值作为枢轴添加到输出映射并使用 JOB_ID_COUNT 汇总/聚合计数。

我期待以下回应:输出:

尝试按多个地图字段分组时出现编译时错误。单字段 groupingBy 工作正常。非常感谢任何帮助。

0 投票
1 回答
81 浏览

java - 如何使用 Collectors groupingBy 将频率映射到新对象?

获取类对象的描述频率:

我使用 Collectors groupingBy + 计数功能:

但我想将结果作为类的新对象返回

而不是Map<String, Long>. 有什么简单的方法来做到这一点?

0 投票
1 回答
167 浏览

java - 使用 CollectingAndThen 方法在 Streams 中的 groupingBy -> 如何摆脱 Optional 然后在地图上使用 Max :)

似乎我不太了解 groupingBy & 收集器 & 排序的概念。

任务:使用 Streams 对按类别分组的订单数量求和。然后获取最大数量的类别并将其打印在图片上作为具有最高值的单个地图行

3 类(2 条记录:产品和订单 + 主要)。在 Main 中有一个 List.of 新订单

类产品:

上课顺序:

主类

下面是我的分组实现:

问题:

  1. 如何摆脱此 Optional 并仅将 Integer 视为地图中的值。然后我想很容易排序
  2. 如何使用 Sorted 方法或更简单的方法(例如 max)通过 Value 对地图进行排序?