list里面的数据结构:
假如想对score分组:
Map<String, List<NameScoreVo>> collect1 = financecase.stream().collect(Collectors.groupingBy(nameScoreVo -> {
if (null != nameScoreVo.getScore() && 0 < nameScoreVo.getScore() && nameScoreVo.getScore() < 20) {
return "blue";
}
if (null != nameScoreVo.getScore() && 20 <= nameScoreVo.getScore() && nameScoreVo.getScore() < 40) {
return "yellow";
}
if (null != nameScoreVo.getScore() && 40 <= nameScoreVo.getScore() && nameScoreVo.getScore() < 60) {
return "orange";
}
if (null != nameScoreVo.getScore() && 60 < nameScoreVo.getScore() && nameScoreVo.getScore() < 99) {
return "red";
}
return "other";
}));
分组后统计数量:
Map<String, Long> collect = financecase.stream().collect(Collectors.groupingBy((nameScoreVo -> {
if (null != nameScoreVo.getScore() && 0 < nameScoreVo.getScore() && nameScoreVo.getScore() < 20) {
return "blue";
}
if (null != nameScoreVo.getScore() && 20 <= nameScoreVo.getScore() && nameScoreVo.getScore() < 40) {
return "yellow";
}
if (null != nameScoreVo.getScore() && 40 <= nameScoreVo.getScore() && nameScoreVo.getScore() < 60) {
return "orange";
}
if (null != nameScoreVo.getScore() && 60 < nameScoreVo.getScore() && nameScoreVo.getScore() < 99) {
return "red";
}
return "other";
}), Collectors.counting()));
结果:
"red": 1,
"blue": 1,
"yellow": 2,
"sum": 4