takeWhile()与
Java 9中的filter()有何不同.它有什么额外的实用程序?
Stream.of(1,2,3,4,5,6,7,8,9,10).filter(i -> i < 4 ) .forEach(System.out::println);
这可能是以下会做的
Stream.of(1,10).takeWhile(i -> i < 4 ) .forEach(System.out::println);
那么这个新功能需要什么呢?
解决方法
filter将从流中删除不满足条件的所有项.
takeWhile将在第一次出现不满足条件的项目时中止流.
例如
Stream.of(1,10,1) .filter(i -> i < 4 ) .forEach(System.out::print);
将打印
123321
但
Stream.of(1,1) .takeWhile(i -> i < 4 ) .forEach(System.out::print);
将打印
123