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);
        }
  • 相关阅读:
    Java入门系列-10-数组
    Java入门系列-09-循环结构
    Java入门系列-08-选择结构
    Java入门系列-07-从控制台中接收输入
    Java入门系列-06-运算符
    05-数据类型和类型转换
    004 java中的变量
    Filter过滤器实现同一地址手机和电脑页面不同
    Java 8 Lambda表达式10个示例【存】
    Centos7+Apache2.4+php5.6+mysql5.5搭建Lamp环境——为了wordPress
  • 原文地址:https://www.cnblogs.com/trekxu/p/9388020.html
Copyright © 2011-2022 走看看