美文网首页
Java 8 新特性 Stream流

Java 8 新特性 Stream流

作者: 我有清风有烈酒 | 来源:发表于2020-09-04 10:58 被阅读0次

Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。

创建流的几种方法

        String[] dd = {"aa","bb","cc"};

        Arrays.stream(dd).forEach(System.out::println);
        System.out.println("=================");
        Stream.of(dd).forEach(System.out::println);
        System.out.println("=================");
        Arrays.asList(dd).stream().forEach(System.out::println);
        System.out.println("=================");
        Stream.iterate(0,x -> x + 1).limit(5).forEach(System.out::println);
        System.out.println("=================");
        Stream.generate(() -> "x").limit(5).forEach(System.out::print);
        System.out.println("=================");
// 输出结果
aa
bb
cc
=================
aa
bb
cc
=================
aa
bb
cc
=================
0
1
2
3
4
=================
xxxxx

Stream流的方法可分为 中间操作 和 终端操作 两种类型
中间类型:意思就是可以连续的操作;
终端操作:结束这一串方法链的操作;

Stream中间操作的方法

        /**
         * filter 操作
         * 判断 dd 数组中是否有 "aa" 元素,有的话继续下一步;
         * 没有的话则不继续。
         */
        System.out.println("filter操作:");
        Arrays.stream(dd).filter(str -> "aa".equals(str)).forEach(System.out::println);

        /**
         * map操作
         * 可以改变返回的类型:
         * Integer类型的数据 返回 String类型的数据。
         */
        Integer[] i = {1,2,3};
        System.out.println("map操作:");
        Arrays.stream(i).map(ii -> Integer.toString(ii)).forEach(ii -> {
            System.out.print(ii);
            System.out.print(ii.getClass());
        });

        /**
         * flatMap操作
         * 把两个流变为一个流
         */
        System.out.println();
        System.out.println("flatMap操作:");
        String[] ee = {"aa","bb","cc"};
        // 不使用flatMap示例,返回的结果是 Stream<String[]> 数组流;
        // 数组流使用forEach来输出的话,不是输出的我们想要的结果,而是Ljava.lang.String;@34c45dca;
        Arrays.stream(ee).map(str -> str.split("")).forEach(System.out::println);
        // 使用flatMap来将map返回的Stream<String[]> 数组流 合并为Stream<String>流;
        // 这样forEach就可以返回我们想要结果了。
        Arrays.stream(ee).map(str -> str.split("")).flatMap(Arrays::stream).forEach(System.out::println);

还没有写完。。。
参考:https://blog.csdn.net/qq_28410283/article/details/80634725

相关文章

  • Stream流

    Stream流 java8新特性 Stream定义 A sequence of elements supporti...

  • java 8 stream 流详细教程

    1 基本特性 Java8的API中添加了一个新的特性: 流,即stream。stream是将数组或者集合的元素视为...

  • Java 8 新特性 Stream流

    Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。 创建流的几种方法 S...

  • Java 8 Stream Study

    Java 8 Stream Study Java 8 Stream Java 8 API添加了一个新的抽象称为流S...

  • 深入浅出parallelStream

    about Stream 什么是流? Stream是java8中新增加的一个特性,被java猿统称为流. Stre...

  • JDK8中的parallelStream与ForkJoinPoo

    什么是流? Stream是java8中新增加的一个特性,被java统称为流. Stream 不是集合元素,它不是数...

  • 2019-12-14

    java 8 特性 在java 8种主要引用了两个特性: lambda表达式和stream 流处理。 下面我将使用...

  • # java 8 特性 lambda 表达式

    java 8 特性 在java 8种主要引用了两个特性: lambda表达式和stream 流处理。 下面我将使用...

  • Java 8 Stream API可以怎么玩?

    Java 8新特性之一 Stream 的官方描述: Classes in the new java.util.st...

  • Stream API

    Stream 声明:java8新特性系列为个人学习笔记,参考地址点击这里,侵删!! Stream API Java...

网友评论

      本文标题:Java 8 新特性 Stream流

      本文链接:https://www.haomeiwen.com/subject/yzqzsktx.html