//最初结果集
List<YourBean> list = new ArrayList<>();
//处理后的结果集
List<YourBean> resultList = new ArrayList<>();
//stream,将集合按指定字段分组
Map<String, List<YourBean>> groupMapResult = list.stream().collect(Collectors.groupingBy(i -> i.getBeanStr()));
//分组后的key集合
List<String> keySet = ListUtils.newArrayList(groupMapByDate.keySet());
//遍历key集合
for (int i = 0; i < keySet.size(); i++) {
YourBean sum = new YourBean();
//通过key获取每个key对应的结果集List<YourBean>
List<YourBean> itemList = groupMapByDate.get(keySet.get(i));
//对其中的数量求和
Double _inNum = itemList.stream().filter(j -> j.getInNum() != null).mapToDouble(j -> Double.parseDouble(j.getInNum())).sum();
//创建合并行
sum.setChildren(uuid);
sum.setRownum(String.valueOf(i + 1));
sum.setInNum(_inNum.toString());
//加入合并行
resultList.add(sum);
//处理 List<YourBean> 中的咩咯元素
for (int k = 0; k < itemList.size(); k++) {
YourBean item = itemList.get(k);
item.setFid(uuid);
item.setRownum((i + 1) + "." + (k + 1));
//加入非合并行
resultList.add(item);
}
}