基础示例类:
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流的一些用法相关推荐

  1. java Steam流的用法

    java Steam流的用法1 java Steam流的用法2 项目中的流用法不太懂,沾出来大家一路分享,有清楚地可以评论留言.

  2. 使用java Steam流进行逻辑分页(内存分页)

    物理分页与逻辑分页 物理分页 物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序员只需要编写带有limit关键字的SQL语句,数据库返回的就是分页结 ...

  3. JAVA—— Steam流

    一. 引言 初识Stream流的作用: 需求:按照下面的要求完成集合的创建和遍历,创建一个集合,存储多个字符串元素  通过下面代码,显然我们清晰的看到使用Stream流更为方便,而使用不同的集合遍历就 ...

  4. Java中Steam流的用法及使用备忘

    文章目录 Java中Steam流的用法及使用备忘 一. 流的常用创建方法 1-1 使用Collection下的 stream() 和 parallelStream() 方法 1-2 使用Arrays ...

  5. java 字节缓冲_Java字节缓冲流原理与用法详解

    本文实例讲述了Java字节缓冲流原理与用法.分享给大家供大家参考,具体如下: 一 介绍 BufferInputStresm和BufferOutputStream 这两个流类为IO提供了带缓冲区的操作, ...

  6. 总是记不住java的IO流用法?用N个问题教你掌握java IO流

    本文分享自华为云社区<总是记不住java的IO流用法?用N个问题教你掌握java IO流>,原文作者:breakDraw . Java IO 体系看起来类很多,感觉很复杂,但其实是 IO ...

  7. java中steam流的使用

    (1)数组合并 : 原始合并 定义俩个集合合并为一个集合 例子: public class 测试 {/*** 把小王合道* list中* */public static void main(Strin ...

  8. java的collect用法_java8新特性:stream流中collect用法

    java8新特性:stream流中collect用法 java8新特性:stream流中collect用法 1.toList List collectList = Stream.of(1, 2, 3, ...

  9. Java Stream(流)的分类, 四大基本流的介绍

    上一篇文章已经介绍过什么是流, 以及流的基本概念 http://blog.csdn.net/nvd11/article/details/29917065 本文主要介绍java四大基本流的方法. 一, ...

最新文章

  1. 简单分解帮助看清复杂问题
  2. python局域网传输文件_Python+pyftpdlib实现局域网文件互传
  3. Hadoop新手篇:hadoop入门基础教程
  4. Github Actions
  5. centos6.5卸载和安装mysql_Linux CentOS 6.5 卸载、tar安装MySQL的教程
  6. gb50243-2016通风与空调工程施工质量验收规范_【规范】现行建筑标准规范集合:(六)专业工程...
  7. loadrunner中变量转换成一个参数
  8. 硬件编码相关知识(H264,H265)
  9. 【电子器件笔记1】电阻参数和选型
  10. MySQL创建外键出现 ERROR 1005: Can't create table (errno: 150)解决办法
  11. littleVGL开发:littleVGL的介绍
  12. oracle log network server,记录一次ARC1: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned解决...
  13. 团体程序设计天梯赛——L1-039 古风排版
  14. 1、synchronized、Lock、volatile
  15. 硬件设计之一——电源设计01:电源防护
  16. rsync运行时出现skipping non-regular file
  17. 这个将996反对到极致的网站,在GitHub上的Star数已经狂飙到 10 万+了
  18. Mac解压Rar,7z,Zip,Winrar?Mac解压缩软件测评,推荐Mac上免费好用的解压软件,高效解压神器帮您解决苹果电脑的解压缩问题
  19. 虚拟信用卡(VCC)对比实体信用卡有哪些特点和优势?
  20. 让bug无处藏身,Java 线上问题排查神器,你学废了吗?

热门文章

  1. 使用SDL实现一个简单的YUV播放器
  2. c语言计算两个整数的乘积
  3. CIDR划分子网: 一个自治系统有 5 个局域网,其连接如下图。LAN1 至 LAN4 上的主机数目分别为 180、60、15、20。 该。。。
  4. vue(数据请求)框架
  5. 华硕飞行堡垒无线网卡9462黄色感叹号
  6. halcon三维检测启蒙1
  7. 手游弱联网手游如何防作弊
  8. InfoGAN 网络训练过程介绍
  9. X Error of failed request: BadWindow (invalid Window parameter)
  10. CentOS 7配置DNS和DHCP服务