创建Stream
下面介绍四种方法介绍如何创建Stream
通过集合
Java8 中的 Collection 接口被扩展,提供了两个获取流的方法,这两个方法是默认实现方法:
-
default Stream
stream() : 返回一个顺序流 -
default Stream
parallelStream() :
ArrayList<Integer> nums = new ArrayList<>();
nums.add(32);
……
Stream<Integer> stream1 = nums.stream();
Stream<Integer> stream2 = nums.parallelStream();
通过数组
Arrays工具类提供steam方法来创建stream。
int[] ints = new int[5];
ints[0] = 32;
……
IntStream stream = Arrays.stream(ints);
重载形式,能够处理对应基本类型的数组:
- public static IntStream stream(int[] array)
- public static LongStream stream(long[] array)
- public static DoubleStream stream(double[] array)
通过Stream的of()
Stream类提供一个静态方法of来获取一个Stream实例
public static<T> Stream<T> of(T... values) : 返回一个流
Stream<String> stream = Stream.of("java", "c++", "linux", "php", "mysql");
创建无限流
可以使用静态方法 Stream.iterate() 和 Stream.generate(),创建无限流。
迭代
public static
生成
public static
// 创建偶数流
Stream<Integer> iterate = Stream.iterate(0, t -> t + 2);
iterate.limit(10).forEach(System.out::println);
// 随机数流
Stream<Double> stream = Stream.generate(Math::random);
stream.limit(10).forEach(System.out::println);