使用传统方式遍历集合过滤元素和使用流遍历集合过滤元素的区别

  • 使用传统的方式,遍历集合,对集合中的数据进行过滤
java 复制代码
package com.csdn.stream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Demo01List {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        Collections.addAll(list, "张无忌", "周芷若", "赵敏", "张强", "张三丰");

        //对list集合中的元素进行过滤,只要以张开头的元素,存储到一个新的集合中
        List<String> listA = new ArrayList<>();
        for (String s : list) {
            if (s.startsWith("张")) {
                listA.add(s);
            }
        }
        //对listA集合进行过滤,只要姓名长度为3的人,存储到一个新集合中
        List<String> listB = new ArrayList<>();
        for (String s : listA) {
            if (s.length()==3) {
                listB.add(s);
            }
        }

        //遍历listB集合
        for (String s : listB) {
            System.out.print(s+"\t");//张无忌	张三丰
        }
    }
}
  • 使用Stream流的方式,遍历集合,对集合中的数据进行过滤
  • Stream流是JDK1.8之后出现的,关注的是做什么,而不是怎么做
java 复制代码
package com.csdn.stream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Demo02Stream {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        Collections.addAll(list, "张无忌", "周芷若", "赵敏", "张强", "张三丰");

        //对list集合中的元素进行过滤,只要以张开头的元素,存储到一个新的集合中
        //对listA集合进行过滤,只要姓名长度为3的人,存储到一个新集合中
        //遍历listB集合

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

        list.stream().filter(name -> name.startsWith("张"))
                .filter(name -> name.length() == 3)
                .forEach(System.out::println);
//                                                张无忌
//                                                张三丰


    }
}
相关推荐
金銀銅鐵8 分钟前
[Java] 如何自动生成简单的 Mermaid 类图
java·后端
纵横八荒22 分钟前
Java基础加强13-集合框架、Stream流
java·开发语言
稚辉君.MCA_P8_Java39 分钟前
kafka解决了什么问题?mmap 和sendfile
java·spring boot·分布式·kafka·kubernetes
乄bluefox41 分钟前
保姆级docker部署nacos集群
java·docker·容器
欣然~1 小时前
百度地图收藏地址提取与格式转换工具 说明文档
java·开发语言·dubbo
玩毛线的包子1 小时前
Android Gradle学习(十三)- 配置读取和文件写入
java
青岛少儿编程-王老师1 小时前
CCF编程能力等级认证GESP—C++6级—20250927
java·c++·算法
一條狗2 小时前
学习日报 20251007|深度解析:基于 Guava LoadingCache 的优惠券模板缓存设计与实现
java·oracle·loadingcache
Miraitowa_cheems2 小时前
LeetCode算法日记 - Day 64: 岛屿的最大面积、被围绕的区域
java·算法·leetcode·决策树·职场和发展·深度优先·推荐算法
Lisonseekpan3 小时前
Spring Boot 中使用 Caffeine 缓存详解与案例
java·spring boot·后端·spring·缓存