Stream的创建
通过java.util.Colleaction.stream()方法用集合创建流
List<String> list = Arrays.asList("a", "b", "c", "d", "e");
//创建一个顺序流
Stream<String> stream = list.stream();
System.out.println("用集合创建顺序流:" + stream);
//创建一个并行流
Stream<String> parallelStream = list.parallelStream();
System.out.println("用集合创建并行流:" + parallelStream);
/**
* 并行流与顺序流的转换
* 除了直接创建并行流,还可以通过parallel()把顺序流转换成并行流
*/
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 7, 9);
Optional<Integer> findFirst = list1.stream().parallel().filter(x1 -> x1 > 6).findFirst();
System.out.println("第一个大于6的值是:" + findFirst);
Optional<Person> findEnd =
Optional.ofNullable(personList.stream().parallel().filter(b -> "Lily".equals(b.getName())).findAny().orElse(null));
System.out.println("名称是Lily:" + findEnd.toString());
其中,PersonList如下:
List<Person> personList = new ArrayList<>();
personList.add(new Person("Tom", 8900, 22, "male", "New Yark"));
personList.add(new Person("Jack", 7000, 23, "male", "Washington"));
personList.add(new Person("Lily", 7800, 24, "female", "Washington"));
personList.add(new Person("Anni", 8200, 25, "female", "New Yark"));
personList.add(new Person("Owen", 9500, 26, "male", "New Yark"));
personList.add(new Person("Alisa", 7900, 27, "female", "New Yark"));
通过java.util.Arrays.stream(T[] array)方法用数组创建流
int[] array = {1, 3, 5, 6, 8};
IntStream stream1 = Arrays.stream(array);
System.out.println("用数组创建流:" + stream1);
通过Stream的静态方法:of()、iterate()、generate()
Stream<Integer> stream2 = Stream.of(1, 2, 3, 4, 5, 6);
System.out.println("静态of方法创建:" + stream2);
Stream<Integer> stream3 = Stream.iterate(0, x -> x + 3).limit(4);
stream3.forEach(System.out::print);
Stream<Double> stream4 = Stream.generate(Math::random).limit(3);
stream4.forEach(System.out::println);