• 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);
        }
  • 相关阅读:
    第2次实践作业
    第1次实践作业
    软工实践个人总结
    2019 SDN大作业
    第08组 Beta版本演示
    第八章学习小结
    第七章学习小结
    第六章学习小结
    第五章学习小结
    第4章学习小结
  • 原文地址:https://www.cnblogs.com/trekxu/p/9388020.html
Copyright © 2020-2023  润新知