Java stream流 api大全
时间: 2023-11-16 08:04:26 浏览: 89
Java 8中的Stream API提供了一种新的处理集合的方式,它支持函数式编程,可以通过一系列的中间操作来完成对数据的处理,最终通过终止操作返回处理结果。下面是Java 8中Stream API的常用方法:
1.创建Stream
- Stream.of(T... values):将一组任意类型的值转换成Stream。
- Collection.stream():将集合转换成Stream。
- Arrays.stream(T[] array):将数组转换成Stream。
- Stream.generate(Supplier<T> s):生成一个无限长度的Stream。
- Stream.iterate(T seed, UnaryOperator<T> f):生成一个有限长度的Stream。
2.中间操作
- filter(Predicate<T> p):过滤掉不符合条件的元素。
- map(Function<T, R> f):将元素进行转换,产生一个新的Stream。
- flatMap(Function<T, Stream<R>> f):将元素进行扁平化处理。
- distinct():去重,去掉重复的元素。
- sorted():排序,将元素按照自然顺序排序。
- sorted(Comparator<T> c):排序,将元素按照指定的Comparator排序。
- peek(Consumer<T> c):对每个元素执行一些操作,但是不影响流的操作。
- limit(long maxSize):截取Stream,只包含前maxSize个元素。
- skip(long n):跳过前n个元素。
3.终止操作
- forEach(Consumer<T> c):对Stream中的每个元素执行一些操作。
- toArray():将Stream转换成数组。
- reduce(BinaryOperator<T> accumulator):将Stream中的所有元素依次执行指定的操作,返回一个Optional对象。
- reduce(T identity, BinaryOperator<T> accumulator):将Stream中的所有元素依次执行指定的操作,并且提供一个初始值。
- collect(Collector<T, A, R> collector):将Stream中的所有元素收集到一个集合中。
- min(Comparator<T> c):返回Stream中最小的元素。
- max(Comparator<T> c):返回Stream中最大的元素。
- count():返回Stream中元素的数量。
- anyMatch(Predicate<T> p):判断是否存在至少一个元素符合条件。
- allMatch(Predicate<T> p):判断是否所有的元素都符合条件。
- noneMatch(Predicate<T> p):判断是否所有的元素都不符合条件。
- findFirst():返回Stream中的第一个元素,如果Stream为空,则返回一个空的Optional对象。
- findAny():返回Stream中的任意一个元素,如果Stream为空,则返回一个空的Optional对象。
以上就是Java 8中Stream API的常用方法。需要注意的是,Stream是一种延迟计算的方式,只有在执行终止操作时才会进行实际的计算。
阅读全文