当前位置: java基础教程 > 14-Stream流与方法引用 > 阅读正文

Stream — 流式接口类

2021.2.22.   810 次   1531字

Stream 接口类是进行 Stream 操作的必须的类

1.导包
import java.util.stream.Stream;
2.构造方法

Stream<T> 是一个接口,无法直接获取,主要有 2 种方式获取,集合和数组

//1.所有的 Collection 集合都可以通过 stream 默认方法获取
Collection<String> collection = new ArrayList<>();
Stream<String> stream1 = collection.stream();
//2.Map集合可以通过 keySet,或 entrySet,再获取stream
Map<String,String> map = new HashMap<>();
Set<String> keyset = map.KeySet();
Stream<String> stream2 = keyset.stream();
Set<Map.Entry<String,String>> entry = map.entrySet();
Stream<Map.Entry<String,String>> stream3 = entry.stream;
//3.数组可以通过 Stream 接口的静态方法 of 获取
Integer[] arr = {1,2,3,4,5,6};
Stream<Integer> stream4 = Stream.of(arr);
3.方法

方法主要分为 2 大类,分为延迟方法 (返回仍是Stream) 和终结方法

终结方法包括 count 和 forEach,其余方法均为延迟方法

方法的参数,均是一个函数式接口,每个 Stream 只能用一次方法,可链式调用

  1. forEach 方法,主要是用来遍历集合
Stream<String> stream = Stream.of("张三","李四","王五");
stream.forEach(name->System.out.println(name));

2. filter 方法,拦截符合条件的元素

Stream<String> stream2 = Stream.of("张三丰","张无忌","张三","李四");
Stream<String> stream3 = stream2.filter(name->name.startWith("张"));

3. map方法,转换数据类型

Stream<String> stream4 = Stream.of("1","2","3");
Stream<Integer> stream5 = stream4.map(s->Integer.parseInt(s));

4. count方法,计算 Stream 流中元素的个数

Stream<String> stream6 = Stream.of("张三","李四");
long count = stream6.count();

5. limit方法,截取前n个元素

Stream<String> stream7 = Stream.of("第一个","第二个","第三个");
String<String> stream8 = stream7.limit(2); //只要前 2 个元素

6. skip方法,跳过前n个元素

Stream<String> stream9 = Stream.of("1","2","3","4","5");
Stream<String> stream10 = stream9.skip(3); //跳过前3个,只有4,5

7. concat方法,把2个流合并为一个

Stream<String> stream11 = Stream.of("1","2");
Stream<String> stream12 = Stream.of("3","4");
Stream<String> stream13 = Stream.concat(stream11,stream12);

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群