赞
踩
Stream允许我们以声明式的方式处理数据集合,可以将Stream看作是遍历数据集合的高级迭代器。Stream 与Lambda表达式结合使用,将使编码效率大大提高,可读性增强。
注意:Stream与IO中的InputStream/OutputStream是不同的概念
操作案例:使用stream将集合中的手机按照序号num从小到大排序:
结果:
Stream流的操作顺序:
Stream语法:
| stream of elements +-----> |filter+-> |sorted+-> |map+-> |collect|
List<String> list = new ArrayList<>();
Stream<String> stream = list.stream();
Integer[] arr= new Integer[10];
Stream<Integer> stream = Arrays.stream(arr);
Stream<Integer> stream = Stream.of(4,3,2,7,5,1,6);
BufferedReader reader=new BufferedReader(new FileReader("test.txt"));
Stream<String> lineStream = reader.lines();
流操作可以分为中间操作和终端操作
List<Apple> apples =
applestore .stream() 获得流
.filter(a -> a.getColor().equals("红色")) 中间操作
.collect(Collectors.toList()); 终端操作
简单来说Stream的流程就是
数据源->中间操作->终端操作->结果
/** * 终端操作 -- 结果 */ Integer[] arr = new Integer[]{ 3,1,5,7,2,6,4,4,0}; Object[] arr1 = Arrays.stream(arr) .distinct() .sorted() .toArray(); //toArray()将流中元素倒入Object数组中 //forEach() Arrays.stream(arr1).forEach(e-> System.out.print(e+" ")); //count 统计 Long count = Arrays.stream(arr).count(); System.out.println(count); //anyMatch 流中任意一个元素符合条件时返回true boolean any = Arrays.stream(arr).anyMatch((e)->{ return e>3;}); System.out
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。