Java Stream 流常用操作大全

文章目录

  • [1. 逗号分隔的字符串转 List](#1. 逗号分隔的字符串转 List)
    • [(1)转 `List<String>`](#(1)转 List<String>)
    • [(2)转 `List<Long>`](#(2)转 List<Long>)
  • [2. map 元素映射](#2. map 元素映射)
  • [3. filter 元素过滤](#3. filter 元素过滤)
  • [4. findFirst 查找首个元素](#4. findFirst 查找首个元素)
    • [(1)查找 filter 过滤后的首个元素](#(1)查找 filter 过滤后的首个元素)
  • [5. groupingBy 分组](#5. groupingBy 分组)

1. 逗号分隔的字符串转 List

(1)转 List<String>

java 复制代码
String str = "1,2,3,4,5,6";
List<String> list = Arrays.stream(str.split(","))
	.map(String::trim).collect(Collectors.toList());

(2)转 List<Long>

java 复制代码
String str = "1,2,3,4,5,6";
List<Long> list = Arrays.stream(str.split(","))
	.map(s -> Long.parseLong(s.trim())).collect(Collectors.toList());

2. map 元素映射

java 复制代码
List<String> usernameList = records.stream()
		.map(SysUser::getUsername())
		.collect(Collectors.toList());

3. filter 元素过滤

java 复制代码
List<SysUser> sysUserList = records.stream()
		.filter(x -> StrUtil.equals(x.getUsername(), "taibai"))
		.collect(Collectors.toList());

4. findFirst 查找首个元素

(1)查找 filter 过滤后的首个元素

java 复制代码
SysUser sysUser = records.stream()
		.filter(x -> StrUtil.equals(x.getUsername(), "taibai"))
		.findFirst().orElse(null);

5. groupingBy 分组

(1)单个字段分组

java 复制代码
Map<String, SysUser> countMap = records.stream()
		.collect(Collectors.groupingBy(SysUser::getDeptId()));

(2)单个字段分组-统计数量

java 复制代码
Map<String, Long> countMap = records.stream()
		.collect(Collectors.groupingBy(SysUser::getDeptId(), Collectors.counting()));

(3)多字段分组

java 复制代码
Map<String, SysUser> countMap = records.stream()
		.collect(Collectors.groupingBy(x -> x.getDeptId() + "_" + x.getRoleId()));

(4)多字段分组-统计数量

java 复制代码
Map<String, Long> countMap = records.stream()
		.collect(Collectors.groupingBy(x -> x.getProductType() + "_" + x.getCountry(), Collectors.counting()));

相关推荐
sg_knight3 天前
Spring Cloud与RabbitMQ深度集成:从入门到生产级实战
java·spring boot·spring·spring cloud·消息队列·rabbitmq·stream
DN金猿5 天前
java8提取list中对象有相同属性值的对象或属性值
java·list·stream·java8
mask哥1 个月前
详解flink性能优化
java·大数据·微服务·性能优化·flink·kafka·stream
中草药z1 个月前
【Stream API】高效简化集合处理
java·前端·javascript·stream·parallelstream·并行流
mask哥1 个月前
详解kafka streams(二)
java·大数据·微服务·flink·kafka·stream·流式操作
上单带刀不带妹1 个月前
Node.js 的流(Stream)是什么?有哪些类型?
node.js·stream·js
ruan1145143 个月前
Java Lambda 类型推断详解:filter() 方法与 Predicate<? super T>
java·开发语言·spring·stream
小雨的光5 个月前
JDK8中的 Stream流式编程用法优化(工具类在文章最后)
java·stream·jdk8
樱阙诗汀6 个月前
Stream流式编程工具类,开发必备
java·stream·流式编程
Klong.k6 个月前
什么是 Stream
java·stream