Java中如何生成流呢?
下文笔者讲述java生成流的五种方法分享,如下所示
生成流的实现思路: 方式1: 使用集合生成 方式2: 使用数组生成 方式3: 使用Stream.of 方式4: 使用文件生成 方式5: 使用iterate和generate两个静态方法 从函数中生成流例:生成流的示例
//1.使用集合生成,应用中最常用的一种 list<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5); Stream<Integer> stream = integerList.stream(); //2.使用数组生成 int[] intArr = new int[]{1, 2, 3, 4, 5}; IntStream stream = Arrays.stream(intArr); 使用Arrays.stream方法生成流 该方法生成的流是数值流(即IntStream) 而不是Stream Stream API提供 mapToInt、mapToDouble、mapToLong三种方式 将对象流转换成对应的数值流 //3.使用值生成 Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5); 使用Stream的of方法生成流 使用Stream的empty方法可以生成一个空流 //4.使用文件生成 Stream<String> lines = Files.lines(Paths.get("data.txt"), Charset.defaultCharset()) 使用Files.line方法得到一个流 并得到的每个流是给定文件中的一行 //5.使用函数生成 //提供iterate和generate两个静态方法从函数中生成流 iterator Stream<Integer> stream = Stream.iterate(0, n -> n + 2).limit(5); iterate方法接受两个参数 第一个为初始化值 第二个为进行的函数操作 因为iterator生成的流为无限流 使用limit方法对流进行了截断,只生成5个偶数 generator Stream<Double> stream = Stream.generate(Math::random).limit(5); generate方法接受一个参数 方法参数类型为Supplier 由它为流提供值 generate生成的流也是无限流 因此使用limit对流进行截断
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。