1.合并对象中属性为List的情况
对象结构(示例):
"report" : {
"reportDate" : "2022-04-24",
"alive" : 223,
"details" : [
{
"alive": 100
},
{
"alive": 123
}
]
}
合并对象中details为一个List的代码如下(示例):
List<Detail> detailList = reportList.stream()
.map(Report::getDetials)
.flatMap(Collection::stream)
.collect(Collectors.toList())
2.List groupBy后按照一定计算方法,处理计算value的List
// TODO 应该还有更方便的方式
List<RecData> dataList = baseMapper.selectList();
Map<String, Integer> result = new HashMap<>();
// 数据分组统计处理
dataList.parallelStream()
.collect(Collectors.groupingBy(item -> item.getType(), Collectors.toList())) // TODO
.forEach((type, transfer) -> {
int subNum = transfer.stream().mapToInt(RecData::getSubNum).sum();
int totalNum = transfer.stream().mapToInt(RecData::getTotalNum).sum();
result.put(type, subNum / totalNum);
});