Java8新特性 Stream流式思想(一)
遍历及过滤集合中的元素
- 使用传统方式遍历及过滤集合中的元素
package cn.com.zq.demo01.Stream.test01.Stream; import java.util.ArrayList; import java.util.List; /* * 使用 传统方式 遍历 及 过滤 集合 * 需求 : * 1、第一步过滤,只需要 以 “张” 开头的名字 * 2、第二步过滤只需要 ,名字长度为 2 的名字 * */ public class Test01Stream { public static void main(String[] args) { // 创建一个集合 List , 存储姓名 并根据要求 进行过滤 List<String> nameList = new ArrayList<>(); nameList.add("张三"); nameList.add("李四"); nameList.add("王五"); nameList.add("赵六"); nameList.add("田七"); nameList.add("王八"); nameList.add("张四"); nameList.add("张三丰"); // 使用传统方式进行过滤 // 1、第一步过滤,只需要 以张开头的名字 // 需要 创建一个新的集合 对 第一次过滤之后的 姓名 进行存储 List<String> listA = new ArrayList<>(); for (String s : nameList) { //使用增强 for 循环 对 集合进行遍历 if (s.startsWith("张")) { listA.add(s);//将过滤后的结果 添加到新的集合中 } } List<String> listB = new ArrayList<>(); for (String s : listA) { if (s.length() == 2) { listB.add(s); } } for (String s : listB) { System.out.print(s + " ");// 最终过滤结果 张三 张四 } } }
- 使用使用Stream流的方式遍历及过滤集合中的元素
package cn.com.zq.demo01.Stream.test01.Stream; import java.util.ArrayList; import java.util.List; /* * 使用Stream流的方式 遍历 并 过滤集合 * 需求 : 1、第一步过滤,只需要 以 “张” 开头的名字 2、第二步过滤只需要 ,名字长度为 2 的名字 * */ public class Test02Stream { public static void main(String[] args) { // 创建一个集合 List , 存储姓名 并根据要求 进行过滤 List<String> nameList = new ArrayList<>(); nameList.add("张三"); nameList.add("李四"); nameList.add("王五"); nameList.add("赵六"); nameList.add("田七"); nameList.add("王八"); nameList.add("张四"); nameList.add("张三丰"); // 使用 Stream 流的方式 ,对集合进行遍历,并过滤 // 1、第一步过滤,只需要 以 “张” 开头的名字 // 将集合转换为 Stream流, 直接调用Collection接口的一个默认方法 stream nameList.stream().filter(s->s.startsWith("张")) .filter(s->s.length()==2) .forEach(s-> System.out.print(s+" "));// 输出结果 : 张三 张四 } }
原文:https://blog.csdn.net/qq_41319058/article/details/90319707