使用jdk1.8实现将list根据指定的值去分组的操作
我就废话不多说了,大家还是直接看代码吧~
Map>commentList=list.stream().collect(Collectors.groupingBy(CommentQuery::getNewsId)); for(Map.Entry >entry:commentList.entrySet()){ Stringkey=HOT_LIST_KEY+entry.getKey(); if(entry.getValue().isEmpty()){ stringRedisTemplate.opsForValue().set(key,""); }else{ Gsongson=newGson(); Stringjson=gson.toJson(entry.getValue()); //先删除redis数据然后在插入新的牛评数据 stringRedisTemplate.delete(key); stringRedisTemplate.opsForValue().set(key,json); stringRedisTemplate.expire(key,1,TimeUnit.DAYS); } }
补充知识:java8list集合利用stream根据元素的指定属性进行分组统计
需求是对指定集合的学生信息,根据班级分组统计每个班所有学生的凭证数量。
List>result=newArrayList<>(); List >list=getList(countVo); list.stream() .collect(Collectors.groupingBy(map->map.get("className"),Collectors.toList())) .forEach((key,groupMap)->{ HashMap stringObjectHashMap=groupMap.stream().reduce((item1,item2)->{ IntegerpzListNo=item1.get("pzListNo")==null?0:(Integer)item1.get("pzListNo"); IntegerpzListNo2=item2.get("pzListNo")==null?0:(Integer)item2.get("pzListNo"); item1.put("pzListNo",pzListNo+pzListNo2); returnitem1; }).get(); result.add(stringObjectHashMap); }); returnresult;
以上这篇使用jdk1.8实现将list根据指定的值去分组的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。