java8流式操作

本文探讨了Java8中流式操作的概念,重点介绍了如何使用流进行数据处理和转换。通过实例展示了终结操作在流处理中的应用,帮助读者掌握这一强大的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.filter:对数据进行过滤,只会留下返回值为true的数据
例:
List<String> test = new ArrayList<>();
test.add("tom");
test.add("jerory");
//过滤出值为tom的元素,生成新的流数据
test.stream().filter(o->o.equals("tom"));

2.map:对数据进行操作
例:
List<String> test = new ArrayList<>();
test.add("tom");
test.add("jerory");
//对数据进行substring操作,生成新的流数据
test.stream().map(o->o.substring(1));

3.filterMap:对数据进行操作,结果必须是流数据
例:
List<String> test = new ArrayList<>();
test.add("tom");
test.add("jerory");
//对数据按o进行切割,生成新的流数据
test.stream().flatMap(Stream.of(o->o.split("o“)));

4.limit(size):流中数据取size个

5.skip(size):流中数据跳过size个

6.concat(stream a,stream b):连接a,b两个流数据,生成新流

7.distinct:对流中数据进行去重,根据数据中equals方法确定

8.peek:调用元素前,对每个元素执行其中的方法
例:在迭代元素前,先打印每个元素的值
  	List<String> test = new ArrayList<>();
    test.add("tom");
    test.add("jerory");
    test.stream().peek(s -> System.out.println(s)).forEach();

终结操作

max:返回最大值
例:查询test中的最大值     
		List<String> test = new ArrayList<>();
        test.add("tom");
        test.add("jerory");
        Optional<String> max = test.stream().max(String::compareToIgnoreCase);
        System.out.println(max.get());

min:返回最小值

findFirst:返回流的第一个非空值
findAny:返回流中任意一个值
foreach:遍历元素
collect:收集元素
	生成list
	stream.collect(Collectors.toList())
	生成set
	stream.collect(Collectors.toSet())
	生成指定集合
	stream.collect(Collectors.toCollection(TreeSet::new))
	流中元素用,拼成一个字符串
	stream.collect(Collectors.joining(","))
	根据某字段进行统计,返回SummaryStatistics
	stream.collect(Collectors.summarizingDouble(字段))
	收集元素,转为map,当出现key冲突时,调用fun解决
	stream.collect(Collectors.toMap(key,value,fun))
	根据字段分类分组,结果为map
	stream.collect(Collectors.groupingBy(字段))
	根据返回值truefalse进行分组
	stream.collect(Collectors.partitioningBy(断言,返回true or false))
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值