前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >stream流分组

stream流分组

作者头像
阿超
发布2022-08-16 17:15:18
3580
发布2022-08-16 17:15:18
举报
文章被收录于专栏:快乐阿超

前两天补充了博客中写的java8stream的用法

今天再写个分组的

例如我们下面需要根据奇数偶数分组

可以先新建一个list

代码语言:javascript
复制
List<Integer> integerList = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 0));

然后进行分组

代码语言:javascript
复制
Map<Boolean, List<Integer>> collect = integerList.stream().collect(Collectors.groupingBy(data -> data % 2 == 0));
List<Integer> evenNumbers = collect.get(true);
List<Integer> oddNumber = collect.get(false);
System.out.println("data % 2 == 0-----------");
evenNumbers.forEach(System.out::println);
System.out.println("data % 2 != 0-----------");
oddNumber.forEach(System.out::println);

然后输出结果

image-20201106223222979
image-20201106223222979

比如我们现在自定义的User,我们需要根据username进行分组

代码语言:javascript
复制
List<User> userList = Lists.newArrayList();
userList.add(new User("ruben", "1"));
userList.add(new User("achao", "2"));
userList.add(new User("ruben", "3"));
Map<String, List<User>> userMap = userList.stream().collect(Collectors.groupingBy(User::getUsername));
List<User> ruben = userMap.get("ruben");
System.out.println("ruben-----------");
ruben.forEach(System.out::println);
List<User> achao = userMap.get("achao");
System.out.println("achao-----------");
achao.forEach(System.out::println);
image-20201106223416680
image-20201106223416680

可以看到同样分好组了

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档