流式编程

创建流8种方法

1.创建空流 这个方法经常被用在创建一个不含元素的空的流进行返回,避免返回null

    private static <T>Stream createEmptyStream(T t){
        Stream<T> stream = Stream.empty();
        return stream;
    }

2.从集合中创建流

    private static Stream createCollectionStream(){
        Collection<String> collection = Arrays.asList("JAVA", "J2EE", "Spring", "Hibernate");
        return  collection.stream();
    }

3.从数组中创建流

   private static Stream createArrayStream(){
        // 数组作为Stream源
        Stream<String> streamOfArray = Stream.of("a", "b", "c");
        streamOfArray.forEach(System.out::println);
        // 从数组或者数组的部分元素中创建流
        String[] arr = new String[] { "a", "b", "c" };
        Stream<String> streamOfArrayFull = Arrays.stream(arr);
        return null;
    }

4.Stream.builder()创建流

  private static Stream createBuilderStream(){
        Stream<String> streamBuilder = Stream.<String>builder().add("a").add("b").add("c").build();
        streamBuilder.forEach(System.out::println);
        return null;
    }

5.使用Stream.generate()

   private static Stream createGenerateStream(){
        Stream<String> streamGenerated = Stream.generate(() -> "element1").limit(10);

        streamGenerated.forEach(System.out::println);
        return  null;
    }

6.使用Stream.iterate()

   private static Stream createIterateStream(){
        Stream<Integer> streamIterated = Stream.iterate(1, n -> n + 2).limit(5);
        streamIterated.forEach(System.out::println);
        return  null;
    }

7.文件获取流

    public static Stream<String> createFileStream() throws IOException {
        Path path = Paths.get("D:\\data\\test.txt");
        Stream<String> streamOfStrings = Files.lines(path);
        Stream<String> streamWithCharset = Files.lines(path, Charset.forName("UTF-8"));
//        streamOfStrings.forEach(System.out::println);
//        streamWithCharset.forEach(System.out::println);
//        streamOfStrings.close();
//        streamWithCharset.close();
        return streamWithCharset;
    }

8.从数据中获取

    private static Stream createCreationStream() throws IOException {
        IntStream intStream = IntStream.range(1, 4);
        intStream.forEach(System.out::println);

        LongStream longStream = LongStream.rangeClosed(1, 5);
        longStream.forEach(System.out::println);

        Random random = new Random();
        DoubleStream doubleStream = random.doubles(2);
        doubleStream.forEach(System.out::println);

        return null;
    }

9.正则表达式生成流

  public static Stream<String> createRegexStream() throws IOException {
        Path path = Paths.get("D:\\data\\test.txt");
        String streamOfStrings = Files.lines(path).collect(Collectors.joining(""));
        Stream<String>  stringStream= compile("[.]+}").splitAsStream(streamOfStrings);
//        Stream<String> streamWithCharset = Files.lines(path, Charset.forName("UTF-8"));
//        stringStream.forEach(System.out::println);
        return stringStream;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 集合优化了对象的存储,而流则是对数据的处理 流是一系列与特定存储机制无关的元素,利用流,我们无需迭代集合中的元素,...
    Jay丶x阅读 4,554评论 0 0
  • Stream流 说到Stream便容易想到I/O Stream,而实际上,谁规定“流”就一定是“IO流”呢?在Ja...
    哈哈大圣阅读 5,897评论 0 3
  • 00-流式编程思想1 背景 事件数据的产生随着时间的推移逐渐下降 人们对某件事的理解往往来自基于有效论据的结论。要...
    蜗牛写java阅读 4,268评论 0 1
  • 本次课程的标题不像之前那样易懂,是一个陌生的概念,“流式编程”是个什么东西? 在了解流式编程之前先思考一下“流”,...
    tommy990607阅读 14,501评论 1 1
  • 我不是一个有很多故事的人,但却有很多的故事想要讲给你听。 这些故事中的主角,都是我在旅途中遇到的可爱的人。 他们和...
    三三先生阅读 5,472评论 0 3