首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >JAVA8 Collectors.groupingBy[通俗易懂]

JAVA8 Collectors.groupingBy[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-25 11:22:40
发布2022-09-25 11:22:40
8130
举报

大家好,又见面了,我是你们的朋友全栈君。

1.按长度对字符串进行分组

代码语言:javascript
复制
List<String> list = Arrays.asList("a", "bb", "cc", "ddd");
Map<Integer, List<String>> result = list.stream().collect(Collectors.groupingBy(String::length));
System.out.println(result);
// {1=[a], 2=[bb, cc], 3=[ddd]}

2.根据ExcelEntity的某个字段进行分组

代码语言:javascript
复制
List<ExcelEntity> list = new ArrayList<>();
ExcelEntity entity1 = new ExcelEntity();
entity1.setGlobalNo("001");
entity1.setUserId("zhangsan");
entity1.setAddress("北京");
entity1.setGoodsCd("A001");
list.add(entity1);
ExcelEntity entity2 = new ExcelEntity();
entity2.setGlobalNo("002");
entity2.setUserId("lisi");
entity2.setAddress("上海");
entity2.setGoodsCd("A002");
list.add(entity2);
ExcelEntity entity3 = new ExcelEntity();
entity3.setGlobalNo("003");
entity3.setUserId("wangwu");
entity3.setAddress("辽宁");
entity3.setGoodsCd("A003");
list.add(entity3);

Map<String, List<ExcelEntity>> map = list.stream()
        .collect(Collectors.groupingBy(ExcelEntity::getGlobalNo));
System.out.println(map);
// {001=[com.ExcelEntity@214c265e], 002=[com.ExcelEntity@448139f0], 003=[com.ExcelEntity@7cca494b]}

3.计数

代码语言:javascript
复制
Map<String, Long> map = list.stream()
        .collect(Collectors.groupingBy(ExcelEntity::getGlobalNo, Collectors.counting()));
System.out.println(map);
// {001=1, 002=1, 003=2}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171461.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.按长度对字符串进行分组
  • 2.根据ExcelEntity的某个字段进行分组
  • 3.计数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档