- 使用传统的方式,遍历集合,对集合中的数据进行过滤
javapackage 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之后出现的,关注的是做什么,而不是怎么做
javapackage 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); // 张无忌 // 张三丰 } }