Java8进行多个字段分组统计实现

Posted 胖子学习天地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java8进行多个字段分组统计实现相关的知识,希望对你有一定的参考价值。

 

// 分组统计
Map<String, Long> countMap = records.stream().collect(Collectors.groupingBy(o -> o.getProductType() + "_" + o.getCountry(), Collectors.counting()));

List<Record> countRecords = countMap.keySet().stream().map(key -> {
    String[] temp = key.split("_");
    String productType = temp[0];
    String country = temp[1];
    
    Record record = new Record();
    record.set("device_type", productType);
    record.set("location", country;
    record.set("count", countMap.get(key).intValue());
    return record;
}).collect(Collectors.toList());

  

以上是关于Java8进行多个字段分组统计实现的主要内容,如果未能解决你的问题,请参考以下文章

Java8 Stream针对List先分组再求和最大值最小值平均值等

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

案例分享电力设备生产数据的多层分组统计报表实现

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

Java8实战list分组过滤统计排序等常用操作

简单的sql分组统计