Stream API改进
新增方法 | 作用类 | 描述 |
---|---|---|
default takeWhile | Stream、IntStream、LongStream、DoubleStream | 接收所有值,直到遇到第一个不满足条件的元素 |
default dropWhile | Stream、IntStream、LongStream、DoubleStream | 排除所有值,直到遇到第一个不满足条件的元素 |
static iterate | Stream、IntStream、LongStream、DoubleStream | 迭代器 |
static ofNullable | Stream | 单个元素Stream,若元素为null,返回空Stream |
java
// 仅以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());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21