stream流分组

简介: stream流分组

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

今天再写个分组的

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

可以先新建一个list

List<Integer> integerList = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 0));

然后进行分组

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);

然后输出结果

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

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);

可以看到同样分好组了

相关文章
|
关系型数据库 MySQL 数据库
项目实战24—xxljob控制台不打印日志
项目实战24—xxljob控制台不打印日志
740 0
|
存储 Java
AQS(AbstractQueuedSynchronizer,队列同步器)源码解读
AQS(AbstractQueuedSynchronizer,队列同步器)源码解读
|
SQL Java 数据库连接
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
|
Java 网络安全
几个基于springboot在线服务过段时间突然停掉的原因
几个基于springboot在线服务过段时间突然停掉的原因
394 0
|
11月前
Seata框架在AT模式下是如何保证数据一致性的?
通过以上这些机制的协同作用,Seata 在 AT 模式下能够有效地保证数据的一致性,确保分布式事务的可靠执行。你还可以进一步深入研究 Seata 的具体实现细节,以更好地理解其数据一致性保障的原理。
375 50
|
存储 安全 Java
aqs原理初探以及公平锁和非公平锁实现
aqs原理初探以及公平锁和非公平锁实现
465 0
|
传感器 数据采集 网络协议
Java串口通信:从十六进制字符串到字节数组的正确转换与发送
Java串口通信:从十六进制字符串到字节数组的正确转换与发送
675 4
|
负载均衡 Java 微服务
Java错误:com.netflix.client.ClientException: Load balancer does not have available server for client
Java错误:com.netflix.client.ClientException: Load balancer does not have available server for client
|
SQL Java
【SpringBoot】List<实体类>如何去重,单、多属性去重
【SpringBoot】List<实体类>如何去重,单、多属性去重
919 0
|
XML 前端开发 JavaScript
SpringBoot+Vue+Flowable,模拟一个请假审批流程
SpringBoot+Vue+Flowable,模拟一个请假审批流程
1205 0