5.Stream API改进

新增方法 作用类 描述
defaulttakeWhile Stream、IntStream、LongStream、DoubleStream 接收所有值,直到遇到第一个不满足条件的元素
defaultdropWhile Stream、IntStream、LongStream、DoubleStream 排除所有值,直到遇到第一个不满足条件的元素
staticiterate Stream、IntStream、LongStream、DoubleStream 迭代器
staticofNullable Stream 单个元素Stream,若元素为null,返回空Stream
// 仅以IntStream为例
// 输出1、2
System.out.println("takeWhile");
IntStream.of(1, 2, 0)
.takeWhile(it -> it > 0)
.forEach(System.out::println);

// 输出1、3、4
System.out.println("dropWhile");
IntStream.of(3, 2, 1, 3, 4)
.dropWhile(it -> it > 1)
.forEach(System.out::println);

// 迭代 输出1-9
System.out.println("iterate");
IntStream.iterate(1, it -> it < 10, it -> it + 1)
.forEach(System.out::println);

// 可以为null的单元素Stream
System.out.println("ofNullable");
System.out.println(Stream.ofNullable(null).count());