if (EpList.size()>0 && EpList != null) {
//把list封装到map
Map<String, List<Ep>> EPMap = EpList.stream()
.collect(Collectors.toMap(d -> DateUtils.formatYearMonth(d.getCreateTime()),
Lists::newArrayList,
(List<Ep> oldList, List<Ep> newList) -> {
oldList.addAll(newList);
return oldList;
}));
existUserLineChartDTOList.forEach(d -> {
if (EPMap.containsKey(d.getMonthName())) {
d.setExistingUserCount(EPMap.get(d.getMonthName()).size());
}
});
}
collect(Collectors.toMap(d -> DateUtils.formatYearMonth(d.getCreateTime()),
将时间拿出来转成月字符串
Lists::newArrayList,
(List oldList, List newList) -> {
oldList.addAll(newList);
return oldList;
}));
将newList 集合对象转存给oldList 这个集合对象
existUserLineChartDTOList.forEach(d -> {
if (EPMap.containsKey(d.getMonthName())) {
d.setExistingUserCount(EPMap.get(d.getMonthName()).size());
}
});
这是将existUserLineChartDTOList 对象进行循环,取出d.getMonthName() 这个键值到EPMap.containsKey中
判断是否有数据,
如果有值
d.setExistingUserCount(EPMap.get(d.getMonthName()).size());
将EPMap.get(d.getMonthName()) 取出这个字符,将字符长度保存在 d.setExistingUserCount 中
d 是existUserLineChartDTOList 这个对应的引用
这个if判断,没有十年脑血栓绝对写不出来,先size后判null,真是人才啊