Java 9向Stream接口添加了4种新方法:
1. dropWhile
dropWhile方法类似于skip方法,但使用Predicate而不是固定的整数值。 当Predicate为true时,它将从输入流中删除元素。 然后将所有剩余的元素传递到输出流。 例如:
IntStream.range(0, 10)
.dropWhile(i -> i < 5)
.forEach(System.out::println);
// prints 5, 6, 7, 8, 9
2.服用时
takeWhile方法类似于limit方法。 它在Predicate为true时从输入流中获取元素并将其传递到输出流。 例如:
IntStream.range(0, 10)
.takeWhile(i -> i < 5)
.forEach(System.out::println);
// prints 0, 1, 2, 3, 4
注意:使用时要小心
当您有一个无序的流时,dropWhile和takeWhile ,因为您可能会在输出流中获得一些takeWhile元素。
3. ofNullable
ofNullable方法如果元素为null,则返回空流,如果非null,则返回单元素流。 这样就无需在构造流之前进行空检查。
Stream.ofNullable(null).count(); // prints 0
Stream.ofNullable("foo").count(); // prints 1
4.迭代
Java 9中已重载了静态iterate方法,以允许您使用for循环语法创建流。 例如:
Stream.iterate(0, i -> i < 10, i -> i + 1)
.forEach(System.out::println); //prints from 0 to 9
翻译自: https://www.javacodegeeks.com/2017/12/java-9-enhancements-stream-api.html
Java9引入了Stream接口的四种新方法:dropWhile、takeWhile、ofNullable和迭代。dropWhile和takeWhile方法分别用于根据Predicate条件跳过或选择元素,ofNullable用于处理可能为null的元素,而迭代方法则允许使用for循环语法创建流。


被折叠的 条评论
为什么被折叠?



