美文网首页
使用jdk8 的stream 对list进行分组

使用jdk8 的stream 对list进行分组

作者: 山水风情 | 来源:发表于2017-09-23 01:57 被阅读0次
  我在这里使用java进行对数据进行分组是有原因的,比如在数据库中 某一个字段是数据为分数类型的时候,比如, 0-10 表示张三, 11-20 表示李四  , 那么我在某一行的数据中是一个一个区间的值  比如 0-10的区间  我里面一个1,那么这个时候在数据库中分组查询那不很尴尬  毕竟0-10 才是一个数据, sql的分组查询只能过滤掉重复的, 所以我只想到了将数据查询出来, 然后使用list进行分组 (或者可以在数据库中建一个触发器, 然后使用if else 在数据库中判断值) 我这里只用了list来分组
比如这种数据,都是0-10区间的,最结果返回的都是同一个结果
// 对list进行分组,对象的属性是哪个类型, map的key也要那个类型, 否则会报找不到该静态的方法编译异常
            Map<String, List<CreaditResult>> groupBy = creaditResultList.stream().collect(Collectors.groupingBy(CreaditResult::getBrandName)); 


 // 这里是对分组后的某个字段进行累计总数,(这个是字符串累计 , 不是求和哈)
                Map<String,Long> map = creaditResults.stream().collect(Collectors.groupingBy(CreaditResult::getCreaditName,Collectors.counting()));

list分组后和统计数量

相关文章

网友评论

      本文标题:使用jdk8 的stream 对list进行分组

      本文链接:https://www.haomeiwen.com/subject/tqbqextx.html