zoukankan      html  css  js  c++  java
  • 005 Stream的创建

    一 概述

      在我们使用Stream之前,我们首先就需要获得一个Stream.

    在标准的Stream之中,我们可以通过下面的Stream获取Stream.

        //创建stream的方式
        
        //1.Collection接口
        /**
         *  default Stream<E> stream() {
            return StreamSupport.stream(spliterator(), false);
        }    
         */
        // 在jdk1.8之后,我们的Collection之中提供了Stream的创建方法
        
        @Test
        public void test1() {
            List<String> list = Arrays.asList("string","trek");
            list.stream().forEach(System.out :: println);
        }
        
        //2
        //Stream接口之中拥有了of方法,可以创建一个含有指定数量元素的stream
        
        @Test
        public void test2() {
            Stream<String> stream = Stream.of(new String[]{"string","trek"});
            stream.forEach(System.out :: println);
        }
        
        /**
         * 3 .我们使用的数组其实也是一种Stream
         *  ,因此在我们的数组工具类之中也提供了相应的方法创建Stream
         */
        @Test
        public void test3() {
            String[] arr = new String[] {"aaaa","bbbb"};
            Stream<String> stream = Arrays.stream(arr);
            stream.forEach(System.out::println);
        }
        
        /**
         * 从文件之中获取Stream
         * 这个其实我们可能会使用的比较多
         * @throws IOException 
         */
        @Test
        public void test4() throws IOException {
            Path path = Paths.get("E:\trek\trek.js");
            try(Stream<String> stream = Files.lines(path)){
                stream.forEach(System.out::println);
            }
        }
        
        
        /**
         * 通过无限流获取Stream
         * 现在展示的就是iterate()方法获取无限流
         */
        @Test
        public void test5() {
            Stream<Integer> stream = Stream.iterate(1, n -> n+1).limit(20);
            stream.forEach(System.out::println);
        }
        
        /**
         * 通过generate()方法获取无限流
         */
        @Test
        public void test6() {
            Stream<Double> stream = Stream.generate(Math::random).limit(20);
            stream.forEach(System.out::println);
        }
  • 相关阅读:
    软件体系架构复习要点
    Operating System on Raspberry Pi 3b
    2019-2020 ICPC North-Western Russia Regional Contest
    2019 ICPC ShenYang Regional Online Contest
    2019 ICPC XuZhou Regional Online Contest
    2019 ICPC NanChang Regional Online Contest
    2019 ICPC NanJing Regional Online Contest
    Codeforces Edu Round 72 (Rated for Div. 2)
    Codeforces Round #583 (Div.1+Div.2)
    AtCoder Beginning Contest 139
  • 原文地址:https://www.cnblogs.com/trekxu/p/9388020.html
Copyright © 2011-2022 走看看