Skip to content

十五、Stream流

一、使用

获取方式方法名说明
单列集合default Stream<E> stream()Collection中的默认方法
双列集合无法直接使用stream流
数组public static <T> Stream<T> stream(T[] array)Arrays工具类中的静态方法
一堆零散数据public static <T> Stream<T> of(T...values)Stream接口中的静态方法

1、单列集合

java
ArrayList<String> list = new ArrayList<>()
list.stream().forEach(s -> System.out.println(s));

2、双列集合

java
HashMap<String> hm = new HashMap<>()
hm.entrySet().stream().forEach(s -> System.out.println(s));

3、数组

java
int[] arr = {1,2,3,4,5,6,7,8,9};
Arrays.stream(arr).forEach(s -> System.out.println(s));

4、零散数据

java
Stream.of(1,2,3,4,5).forEach(s ->  System.out.println(s));

二、中间方法

名称说明
Stream<T> filter(Predicate<? super T> predicate)过滤
Stream<T> limit(long maxSize)获取前几个元素
Stream<T> skip(long n)跳过前几个元素
Stream<T> distinct()元素去重,依赖(HashCode和equals方法)
static <T> Stream<T> concat(Stream a,Stream b)合并a和b两个流为一个流
Stream<R> map(Function<T,R> mapper)转换流中的数据类型

三、终结方法

名称说明
void forEach(Consumer action)遍历
long count()统计
toArray()收集中的数据,放到数组中
collect(Collector collector)收集中的数据,放到集合中