Java将列表组的字段(BigDecimal)乘以2个字段求和
我有一份清单:
public class Dto {
private Integer id;
private String text;
private BigDecimal price;
}
我试过:
Map<String, Map<Integer, List<Dto>>> map =
list.stream()
.collect(
Collectors.groupingBy(
Dto::getText,
Collectors.groupingBy(Dto::getId)));
但这并没有给出BigDecimal字段的和
此外,我希望回报结构如下:
List<SumDto>
public class SumDto {
private Integer id;
private String text;
private BigDecimal sum;
}
我怎样才能做到这一点?多谢各位
# 1 楼答案
你没有求和,这就是为什么你在任何地方都看不到和。你必须告诉
Collectors.groupingBy
如何减少下游的元素。否则,它会默认创建一个List
你可以这样做:
至于回报结构,我将把它作为练习;)