Stream

Posted hpdblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stream相关的知识,希望对你有一定的参考价值。

public class Test {
    /*
     * Stream接口:
     * 实现类
     * IntStream
     * DoubleStream
     * LongStream
     *
     * 一、创建Stream
     * 1、方式一:通过集合创建
     *         集合对象.stream()
     * 2、方式二:通过数组工具类Arrays
     *        Arrays.stream(数组对象)
     * 3、方式三:Stream接口的静态方法of方法,产生一个有限流
     *         Stream.of(...)
     * 4、方式四:Stream接口的静态方法
     * (1)generate方法,产生无限流
     * (2)Stream<T> iterate(T seed, UnaryOperator<T> f)
     */
    public static void main(String[] args) {

//        test01();
//        test02();
//        test03();
//        test04();
//        test05();
        test06();
    }

    //通过集合创建
    public static void test01() {
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);

        //JDK1.8中,Collection系列集合增加了方法
        Stream<Integer> stream = list.stream();
    }

    //通过数组工具类Arrays
    public static void test02() {
        int[] arr = {1, 2, 3, 4, 5};
        IntStream stream = Arrays.stream(arr);
    }
    //通过数组工具类Arrays
    public static void test03(){
        String[] arr = {"hello","world"};
        Stream<String> stream = Arrays.stream(arr);
    }
    //Stream接口的静态方法of方法,产生一个有限流
    public static void test04(){
        Stream<Integer> stream = Stream.of(1,2,3,4,5);
        stream.forEach(System.out::println);
    }

    //generate方法,产生无限流
    public static void test05(){
        Stream<Double> stream = Stream.generate(Math::random);
        stream.forEach(System.out::println);
    }

    //
    public static void test06(){
        /*
         * Stream<T> iterate(T seed, UnaryOperator<T> f)
         * UnaryOperator接口,SAM接口,抽象方法:
         *
         * UnaryOperator<T> extends Function<T,T>
         *         T apply(T t)
         */
        Stream<Integer> stream = Stream.iterate(1, num -> num+=2);
//        stream = stream.limit(10);
        stream.forEach(System.out::println);
    }
}

 

以上是关于Stream的主要内容,如果未能解决你的问题,请参考以下文章

从Node.js Stream写入多个文件

协议切换成功与否

java8 .stream().sorted().filter().map().collect()用法

Java8 Stream针对List先分组再求和最大值最小值平均值等

TS Stream 详解

Java-jxl插件Excel文件读写报错jxl.read.biff.BiffException: Unable to recognize OLE stream