-
boolean allMatch(Predicate<? super T> predicate) 返回此流的所有元素是否与提供的匹配。
-
boolean anyMatch(Predicate<? super T> predicate) 此流中元素只要有一个与提供的相匹配返回为true,否则为false。
-
collect(Collector<? super T,A,R> collector)
1. static <T,A,R,RR> Collector<T,A,RR> collectingAndThen(Collector<T,A,R> downstream, Function<R,RR> finisher)
// 可以调整toList()收集器总是生成一个不可变的列表:
// List<String> people = people.stream().collect(collectingAndThen(toList(), Collections::unmodifiableList));
2. groupingBy(Function<? super T,? extends K> classifier);按照给定规则进行分组,如果需要并行,使用groupingByConcurrent(Function);
3. joining() 返回一个 Collector ,按照遇到的顺序将输入元素连接到一个 String中。
4. mapping()收集器在多级别缩减时最为有用,例如groupingBy或partitioningBy 。 例如,给出一个Person的流,以累积每个城市中的一组姓氏:
Map<City, Set<String>> lastNamesByCity = people.stream().collect(groupingBy(Person::getCity, mapping(Person::getLastName, toSet())));
-
Stream.concat(Stream<? extends T> a, Stream<? extends T> b) 创建一个连接的流,其元素是第一个流的所有元素,后跟第二个流的所有元素。
-
long count() 返回此流中的元素数。
-
distinct() 返回由该流的不同元素(根据 Object.equals(Object) )组成的流。
-
empty() 返回一个空的顺序 Stream 。
-
filter(Predicate<? super T> predicate) 返回返回符合指定规则的元素流,(false被过滤)
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("9");
list.stream().filter(x->"4".equals(x)).forEach(System.out::println); // 4
-
flatMap(Function<? super T,? extends Stream<? extends R>> mapper) 该方法对原数组的每个成员执行一个函数(相当于执行Array.prototype.map()),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。
// 相当于 [[2, 4], [3, 6], [4, 8]].flat()
[2, 3, 4].flatMap((x) => [x, x * 2])
// [2, 4, 3, 6, 4, 8]
flatMap()只能展开一层数组。
// 相当于 [[[2]], [[4]], [[6]], [[8]]].flat()
[1, 2, 3, 4].flatMap(x => [[x * 2]])
// [[2], [4], [6], [8]]
版权声明:(9)处参考CSDN博主「luoyu6」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/luoyu6/article/details/96767891
- void forEach(Consumer<? super T> action) 对流中的每个元素执行操作,相当于for循环。
- void forEachOrdered(Consumer<? super T> action) 如果流具有定义的遇到顺序,则以流的遇到顺序对该流的每个元素执行操作。
- limit(long maxSize) 返回由此流的元素组成的流,截断长度不能超过 maxSize 。
- Stream
map(Function<? super T,? extends R> mapper) 返回由给定函数对流中对象操作之后的结果流。 - Optional
max(Comparator<? super T> comparator) 根据提供的 Comparator返回此流的最大元素。 - Optional
min(Comparator<? super T> comparator) 根据提供的 Comparator返回此流的最小元素。 - noneMatch(Predicate<? super T> predicate) 流中没有与给定元素项目匹配时返回结果为true
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("9");
System.out.println(list.stream().noneMatch(x -> "0".equals(x)));//true
- Stream.of(T... values) 返回其元素是指定值的顺序排序流。
- Stream.peek(Consumer<? super T> action) peek方法接收一个Consumer的入参。了解λ表达式的应该明白 Consumer的实现类 应该只有一个方法,该方法返回类型为void。 注意:peek接收一个没有返回值的λ表达式,可以做一些输出,外部处理等。map接收一个有返回值的λ表达式,之后Stream的泛型类型将转换为map参数λ表达式返回的类型
- Stream
skip(long n) 在丢弃流的第一个 n元素后,返回由该流的元素组成的流。 - Stream
sorted() 返回由此流的元素组成的流,根据自然顺序排序。 - Object[] toArray() 返回一个包含此流的元素的数组。