Mar*_*ert 3 java java-8 java-stream
我有一个Income对象列表.他们每个人都有一个type.我想把它们分组并总结一下这个amount领域.
对于这种情况:
Income income1 = new Income();
income1.setType(IncomeType.COMMON);
income1.setAmount(BigDecimal.valueOf(1000));
Income income2 = new Income();
income2.setType(IncomeType.COMMON);
income2.setAmount(BigDecimal.valueOf(2000));
Income income3 = new Income();
income3.setType(IncomeType.MARCIN);
income3.setAmount(BigDecimal.valueOf(100));
List<Income> incomes = Arrays.asList(income1, income2, income3);
预期的输出将是一个Map<IncomeType, BigDecimal>包含两个元素的地图:
 <COMMON, 3000>和<MARCIN, 100>
如何使用Java Stream API实现它?
最简单的解决方案是使用Collectors::toMap包括合并功能.
Map<IncomeType, BigDecimal> grouping = incomes.stream()
    .collect(Collectors.toMap(Income::getType, Income::getAmount, BigDecimal::add));
| 归档时间: | 
 | 
| 查看次数: | 562 次 | 
| 最近记录: |