小编Kef*_*iks的帖子

按一个字段流分组然后合并所有其他字段

我在流分组方面遇到了麻烦。

List<FAR> listFar = farList.stream().filter(f -> !f.getStatus().equals(ENUM.STATUS.DELETED))
            .collect(Collectors.toList());
List<HAUL> haulList = listFar.stream().map(f -> f.getHaul()).flatMap(f -> f.stream())
            .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

它按物种分组,这一切都很好,但 HAUL 还有另一个属性。

Map<Specie, List<HAUL>> collect = haulList.stream().collect(Collectors.groupingBy(HAUL::getSpecie));
Run Code Online (Sandbox Code Playgroud)

属性:

  1. haul.getFishCount(); (整数)
  2. haul.getFishWeight(); (大十进制)

是否可以按HAUL::getSpecie(按 Specie)分组,但也可以将这两个额外的字段“合并”在一起,所以我有总数?

例如:我有 3 个 HAUL 元素,其中鱼种 A 的重量为 50/30/10 公斤。

可以按物种分组并计算总重量吗?

java lambda java-8 java-stream

4
推荐指数
2
解决办法
4343
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1

lambda ×1