Stream流式思想
-
传递的遍历集合方式&Stream流方式遍历集合
-
Demo01List
package cn.xiaoge.day21.demo01; /* 使用传统的方式, 遍历集合, 对集合中的数据进行过滤 */ import java.util.ArrayList; public class Demo01List { public static void main(String[] args) { // 创建一个List集合, 存储姓名 ArrayList<String> list = new ArrayList<>(); list.add("张无忌"); list.add("周芷若"); list.add("赵敏"); list.add("张强"); list.add("张三丰"); // 对List集合中的元素进行过滤, 只要以张开头的元素, 存到一个新的集合中 ArrayList<String> listA = new ArrayList<>(); for (String s : list) { if (s.startsWith("张")){ listA.add(s); } } // 对ListA集合进行过滤, 只要姓名长度为3的人, 存储到一个新的集合中 ArrayList<String> listB = new ArrayList<>(); for (String s : listA) { if(s.length() == 3){ listB.add(s); } } // 遍历ListB集合 for (String s : listB) { System.out.println(s); } } } // 运行结果 张无忌 张三丰
-
Demo02Stream
package cn.xiaoge.day21.demo01; /* 使用传统的方式, 遍历集合, 对集合中的数据进行过滤 Stream流是JDK1.8之后出现的 关注的是做什么, 而不是怎么做 */ import java.util.ArrayList; import java.util.List; public class Demo02Stream { public static void main(String[] args) { // 创建一个List集合, 存储姓名 List<String> list = new ArrayList<>(); list.add("张无忌"); list.add("周芷若"); list.add("赵敏"); list.add("张强"); list.add("张三丰"); // 对List集合中的元素进行过滤, 只要以张开头的元素, 存到一个新的集合中 // 对ListA集合进行过滤, 只要姓名长度为3的人, 存储到一个新的集合中 // 遍历ListB集合 // filter(参数是Predicate, 用于判断的接口, 时候一个函数式接口, 可以用lambda表达式) list.stream() .filter(name -> name.startsWith("张")) // Predicate 里 的test方法 .filter(name -> name.length() == 3) .forEach(name -> System.out.println(name));// Consumer 里 的accept方法 } } // 运行结果 张无忌 张三丰
-