java8 lambda 获取list对象中重复数据

java8 lambda 获取list对象中重复数据,第1张

工作上的场景,简单记录一下:

在这里直接借用业务上的list,不再new 了。

List<AlarmStatisticsListOutput> alarmList = spareAlarmStatisticsMapper.selectAlarmStatistics(unitIdList);

根据对象中的某个字段分组,得到重复数据,在这里用了对象中的一个字段spareId

Map<String, List<AlarmStatisticsListOutput>> groupMap = alarmList.stream().collect(Collectors.groupingBy(AlarmStatisticsListOutput::getSpareId));

在这里可以循环map,获取value中的list的size()>1的数据。

for (Map.Entry<String, List<AlarmSpareOutput>> map : groupMap.entrySet()) {
	  if (map.getValue().size() > 1) {
	     //处理业务
	  }
	}

获取重复数据的个数

List<String> count = groupMap.keySet().stream().filter(key -> groupMap.get(key).size() > 1).distinct().collect(Collectors.toList());

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/720077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存