java stream数据分组 stream().collect(groupingBy

Posted JackGIS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java stream数据分组 stream().collect(groupingBy相关的知识,希望对你有一定的参考价值。

List<Map<String, Object>> foreList = forecastDataDao.getcityforeresults(param);
        Map<String,List<Map<String, Object>>> timegroupby=foreList.stream().collect(groupingBy(p->p.get("citycode").toString()));
        Map<String,Map<String,List<Map<String, Object>>>> ret=new HashMap<>();
        if(timegroupby!=null){
            for(String time:timegroupby.keySet()){
                Map<String,List<Map<String, Object>>> citygroup=null;
                citygroup=timegroupby.get(time).stream().collect(groupingBy(p->DateUtil.dateToStr((Date)p.get("datatime"),"yyyyMMdd")));
                if(citygroup!=null){
                    ret.put(time,citygroup);
                }
            }
        }
        return JSONObject.toJSONString(ret);

 

以上是关于java stream数据分组 stream().collect(groupingBy的主要内容,如果未能解决你的问题,请参考以下文章

Java8 stream 中利用 groupingBy 进行多字段分组

java8 stream对数组按条件进行分组

java8 stream 分组的性能对比

java8 stream 分组的性能对比

JDK8对List进行分组操作(stream的groupby)

Java8使用Stream流实现List列表的查询统计排序分组