Java8新特性之Stream--Stream的创建

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);

猜你喜欢

转载自blog.csdn.net/qq_38530648/article/details/114269423