美文网首页
八 JDK8新特性——第二节 Stream流式思想

八 JDK8新特性——第二节 Stream流式思想

作者: 杜艳_66c4 | 来源:发表于2022-07-05 15:04 被阅读0次

1、使用传统的方式遍历集合

Stream 流有别于I/O流,是对集合和数组进行操作,解决集合数组的弊端


循环弊端
package con.day13.demo05.StreamAndMethod;

import java.util.ArrayList;
import java.util.List;

public class Demo01Test {
    //使用传统方式对集合进行遍历
    public static void main(String[] args) {
        //创建一个集合,存储数据
        ArrayList<String> list = new ArrayList<>();
        list.add("张无忌");
        list.add("周芷若");
        list.add("赵敏");
        list.add("张强");
        list.add("张三丰");

        List<String> zhangList1 = new ArrayList<>();
           for (String name:list){
            if (name.startsWith("张")){
                zhangList1.add(name);
            }
        }
          List<String> shortList = new ArrayList<>();
           for (String name: zhangList1){
               if (name.length() == 3){
                   shortList.add(name);
               }
           }

           for (String name : shortList){  // 简写shortList.for()
               System.out.println(name);
           }
    }

}

结果
张无忌
张三丰

2、使用Streaml流的方式,遍历集合

循环弊端
package con.day13.demo05.StreamAndMethod;

import java.util.ArrayList;
/*
Stream 流是JDK 1.8之后出现的, 关注做什么,而不是怎么做
使用Stream流遍历结合,对集合中数据进行过滤
 */
public class Demo02Stream {
    public static void main(String[] args) {
        //创建一个集合,存储数据
        ArrayList<String> list = new ArrayList<>();
        list.add("张无忌");
        list.add("周芷若");
        list.add("赵敏");
        list.add("张强");
        list.add("张三丰");

        list.stream()
                .filter(name->name.startsWith("张"))
                .filter(name->name.length() == 3)
                .forEach(name-> System.out.println(name));
    }
}

3、流式思想概述

流式思想类似于生产车间的流水线


集合元素的处理方案,流式思想

这里filter map skip 都是对函数模型进行操作,集合元素并没有真正被处理,只有当终结方法count执行的时候,整个模型才会按照指定策略执行操作,而这得益于Lambda的延迟执行特性

Stream其实是一个集合元素的函数模型,他并不是集合,也不是数据结构, 其本身并不存储任何元素或其他地址

相关文章

  • 八 JDK8新特性——第二节 Stream流式思想

    1、使用传统的方式遍历集合 Stream 流有别于I/O流,是对集合和数组进行操作,解决集合数组的弊端 2、使用S...

  • Jdk8 新特性 stream 流式数据处理

    jdk9都出来了,我还在看jdk8 流式数据处理 import java.util.*; import jav...

  • Stream API

    1. Stream API 简介 Stream API是 JDK8 的新特性,这种风格将要处理的元素集合看作一种流...

  • JDK8stream将list转Map对象报错java.lang

    ​ JDK8有很多新特性,比如lambda表达式,函数式编程以及stream流的使用,这几个新特性,使用过之后就爱...

  • JDK8中的stream.reduce方法

    作为JDK8新特性之一,stream引入了许多新的方法,reduce就是其中一种。 Reduction 操作 首先...

  • Guli的技术点

    jdk8的新特性有那些: 项目使用到的stream流操作 常用方法以及示例:https://www.jianshu...

  • Stream流

    流式思想 Stream流的简单尝试 传统for循环遍历的方法 Steam流的方式 获取stream流 stream...

  • JDK8的新特性-Stream

    为什么需要引入Stream? Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 Inpu...

  • JDK8新特性之Stream

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

  • JDK8新特性Stream流

    1. Stream流的出现原因 我们操作集合的时候有时候十分麻烦,如下 上面的集合操作数据的时候,每一个需求都需要...

网友评论

      本文标题:八 JDK8新特性——第二节 Stream流式思想

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