Stream常见的有4中方法创建。
使用Collection下的 stream() 和 parallelStream() 方法
//1、使用Collection下的 stream() 和 parallelStream() 方法 // 创建一个顺序流 List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6); Stream<Integer> stream = list.stream(); // 创建一个并行流 Stream<Integer> parallelStream = list.parallelStream(); //输出 System.out.println("1"); System.out.println("使用Collection.stream"); stream.forEach(System.out::print); System.out.println(); System.out.println("使用Collection.parallelStream"); parallelStream.forEach(System.out::print); System.out.println();
使用Arrays 中的 stream() 方法,将数组转成流
//2、使用Arrays 中的 stream() 方法,将数组转成流 Integer[] array = {1, 2, 3, 4, 5, 6}; Stream stream = Arrays.stream(array); //输出 System.out.println("2"); System.out.println("使用Arrays.stream"); stream.forEach(System.out::print); System.out.println();
使用Stream中的静态方法:of()、iterate()、generate()
//3、使用Stream中的静态方法:of()、iterate()、generate() //Stream.of用于为给定元素创建顺序流。我们可以传递单个元素或多个元素。 Stream<Integer> stream1 = Stream.of(1, 2, 3, 4, 5, 6); //Stream.iterate指定一个常量seed,生成从seed到常量f //根据起始值seed(0),每次生成一个指定递增值(n+2)的数,limit(6)用于截断流的长度,即只获取前6个元素。 Stream<Integer> stream2 = Stream.iterate(0, x -> x + 2).limit(6); //Stream.generate返回一个新的无限顺序无序的流 //返回一个无限连续的无序流,其中每个元素由提供的供应商(Supplier)生成。generate方法用于生成常量流和随机元素流。 Stream<Integer> stream3 = Stream.generate(() -> new Random().nextInt(10)).limit(6); //输出 System.out.println("3"); System.out.println("使用Stream.of"); stream1.forEach(System.out::print); System.out.println(); System.out.println("使用Stream.iterate"); stream2.forEach(System.out::print); System.out.println(); System.out.println("使用Stream.generate"); stream3.forEach(System.out::print); System.out.println();
使用 Pattern.splitAsStream() 方法,将字符串分隔成流
//4、使用 Pattern.splitAsStream() 方法,将字符串分隔成流 Pattern pattern = Pattern.compile(","); Stream<String> stream = pattern.splitAsStream("1,2,3,4,5,6"); //输出 System.out.println("4"); System.out.println("Pattern.splitAsStream"); stream.forEach(System.out::print); System.out.println();