记录Java Steam流的一些用法
基础示例类:
Use.java
public class User {private String userId;private String userName;private Integer age;private String region;
}
1.steam流遍历List列表
List<User> userList = new ArrayList<>();userList.add(new User("1", "张三", 20, "上海"));userList.add(new User("2", "李四", 20, "北京"));userList.add(new User("3", "王五", 25, "上海"));userList.stream().forEach(user -> {// 操作System.out.println(user.getUserName() + ":" + user.getAge() + ":" + user.getRegion());});// 与上面方法等同userList.forEach(user -> {// 操作System.out.println(user.getUserName() + ":" + user.getAge() + ":" + user.getRegion());});
2.steam流根据某个字段进行分组
例如需要对User里统一地区的人进行分组
List<User> userList = new ArrayList<>();userList.add(new User("1", "张三", 20, "上海"));userList.add(new User("2", "李四", 20, "北京"));userList.add(new User("3", "王五", 25, "上海"));Map<String, List<User>> collect = userList.stream().collect(Collectors.groupingBy(User::getRegion));System.out.println(collect);
结果:
{上海=[User(userId=1, userName=张三, age=20, region=上海),User(userId=3, userName=王五, age=25, region=上海)], 北京=[User(userId=2, userName=李四, age=20, region=北京)]
}
3.steam流将list里面某个字段合并成String并用,隔开
例如获取User列表所有用户姓名
List<User> userList = new ArrayList<>();userList.add(new User("1", "张三", 20, "上海"));userList.add(new User("2", "李四", 20, "北京"));userList.add(new User("3", "王五", 25, "上海"));String userNameStr = userList.stream().map(User::getUserName).collect(Collectors.joining(","));System.out.println(userNameStr);
结果:
张三,李四,王五
4.steam流 求和
例如,计算User列表所有用户的总年龄
List<User> userList = new ArrayList<>();userList.add(new User("1", "张三", 20, "上海"));userList.add(new User("2", "李四", 20, "北京"));userList.add(new User("3", "王五", 25, "上海"));int sumAge = userList.stream().mapToInt(User::getAge).sum();
结果:
sumAge=65
5.steam流 对某个数字字段排序,并转换为链表
List<User> userList = new ArrayList<>();
userList.add(new User("张三", 20));
userList.add(new User("李四", 27));
userList.add(new User("王五", 25));
userList.add(new User("赵六", 18));System.out.println("排序前:");
System.out.println(userList);// 根据年龄 升序排序 并转换结果为链表
LinkedList<User> collect = userList.stream().sorted(Comparator.comparing(User::getAge)).collect(Collectors.toCollection(LinkedList::new));
System.out.println("升序排序后:");
System.out.println(collect);// 根据年龄 降序排序 并转换结果为链表
LinkedList<User> collect2 = userList.stream().sorted(Comparator.comparing(User::getAge).reversed()).collect(Collectors.toCollection(LinkedList::new));
System.out.println("降序排序后:");
System.out.println(collect2);
结果:
排序前:
[User(name=张三, age=20), User(name=李四, age=27), User(name=王五, age=25), User(name=赵六, age=18)]
升序排序后:
[User(name=赵六, age=18), User(name=张三, age=20), User(name=王五, age=25), User(name=李四, age=27)]
降序排序后:
[User(name=李四, age=27), User(name=王五, age=25), User(name=张三, age=20), User(name=赵六, age=18)]
6.steam流 提取某个字段内容组成列表
List<User> userList = new ArrayList<>();
userList.add(new User("张三", 20));
userList.add(new User("李四", 27));
userList.add(new User("王五", 25));
userList.add(new User("赵六", 18));// 提取用户姓名组成list
List<String> userNameList = userList.stream().map(User::getName).collect(Collectors.toList());
System.out.println(userNameList);
结果:
[张三, 李四, 王五, 赵六]
记录Java Steam流的一些用法相关推荐
- java Steam流的用法
java Steam流的用法1 java Steam流的用法2 项目中的流用法不太懂,沾出来大家一路分享,有清楚地可以评论留言.
- 使用java Steam流进行逻辑分页(内存分页)
物理分页与逻辑分页 物理分页 物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序员只需要编写带有limit关键字的SQL语句,数据库返回的就是分页结 ...
- JAVA—— Steam流
一. 引言 初识Stream流的作用: 需求:按照下面的要求完成集合的创建和遍历,创建一个集合,存储多个字符串元素 通过下面代码,显然我们清晰的看到使用Stream流更为方便,而使用不同的集合遍历就 ...
- Java中Steam流的用法及使用备忘
文章目录 Java中Steam流的用法及使用备忘 一. 流的常用创建方法 1-1 使用Collection下的 stream() 和 parallelStream() 方法 1-2 使用Arrays ...
- java 字节缓冲_Java字节缓冲流原理与用法详解
本文实例讲述了Java字节缓冲流原理与用法.分享给大家供大家参考,具体如下: 一 介绍 BufferInputStresm和BufferOutputStream 这两个流类为IO提供了带缓冲区的操作, ...
- 总是记不住java的IO流用法?用N个问题教你掌握java IO流
本文分享自华为云社区<总是记不住java的IO流用法?用N个问题教你掌握java IO流>,原文作者:breakDraw . Java IO 体系看起来类很多,感觉很复杂,但其实是 IO ...
- java中steam流的使用
(1)数组合并 : 原始合并 定义俩个集合合并为一个集合 例子: public class 测试 {/*** 把小王合道* list中* */public static void main(Strin ...
- java的collect用法_java8新特性:stream流中collect用法
java8新特性:stream流中collect用法 java8新特性:stream流中collect用法 1.toList List collectList = Stream.of(1, 2, 3, ...
- Java Stream(流)的分类, 四大基本流的介绍
上一篇文章已经介绍过什么是流, 以及流的基本概念 http://blog.csdn.net/nvd11/article/details/29917065 本文主要介绍java四大基本流的方法. 一, ...
最新文章
- 简单分解帮助看清复杂问题
- python局域网传输文件_Python+pyftpdlib实现局域网文件互传
- Hadoop新手篇:hadoop入门基础教程
- Github Actions
- centos6.5卸载和安装mysql_Linux CentOS 6.5 卸载、tar安装MySQL的教程
- gb50243-2016通风与空调工程施工质量验收规范_【规范】现行建筑标准规范集合:(六)专业工程...
- loadrunner中变量转换成一个参数
- 硬件编码相关知识(H264,H265)
- 【电子器件笔记1】电阻参数和选型
- MySQL创建外键出现 ERROR 1005: Can't create table (errno: 150)解决办法
- littleVGL开发:littleVGL的介绍
- oracle log network server,记录一次ARC1: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned解决...
- 团体程序设计天梯赛——L1-039 古风排版
- 1、synchronized、Lock、volatile
- 硬件设计之一——电源设计01:电源防护
- rsync运行时出现skipping non-regular file
- 这个将996反对到极致的网站,在GitHub上的Star数已经狂飙到 10 万+了
- Mac解压Rar,7z,Zip,Winrar?Mac解压缩软件测评,推荐Mac上免费好用的解压软件,高效解压神器帮您解决苹果电脑的解压缩问题
- 虚拟信用卡(VCC)对比实体信用卡有哪些特点和优势?
- 让bug无处藏身,Java 线上问题排查神器,你学废了吗?