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);
        }
  • 相关阅读:
    win 7 iis 的一些问题
    Google Maps JavaScript API V3 根据地址 加载地图
    ASP.NET 在程序中动态删除、修改配置文件节点值的方法
    Lambda 表达式的深化及使用
    NHibernate配置的总体流程
    Adobe Acrobat Automation和Aspose.Pdf添加文本印章和水印的对比
    如何导入Swagger文件到Eolinker
    接口文档规范
    对外接口安全性需要考虑什么?
    如何降低API文档对接成本
  • 原文地址:https://www.cnblogs.com/trekxu/p/9388020.html
Copyright © 2011-2022 走看看