一 任务
二 Persion类
package day13; public class Persion { private String name; public Persion() { } public Persion(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
三 使用for实现
import java.util.ArrayList; public class demo { public static void main(String[] args) { ArrayList<String> list1 = new ArrayList<>(); list1.add("迪丽热巴"); list1.add("宋远桥"); list1.add("苏星河"); list1.add("石破天"); list1.add("石中玉"); list1.add("老子"); list1.add("庄子"); list1.add("洪七公"); ArrayList<String> list1_0 = new ArrayList<String>(); for (String s : list1) { if(s.length()==3){ list1_0.add(s); } } ArrayList<String> list1_1 = new ArrayList<>(); for (int i = 0; i < 3; i++) { list1_1.add(list1_0.get(i)); } ArrayList<String> list2 = new ArrayList<>(); list2.add("古力娜扎"); list2.add("张无忌"); list2.add("赵丽颖"); list2.add("尼格拉斯"); list2.add("张天爱"); list2.add("张三丰"); ArrayList<String> list2_0 = new ArrayList<>(); for (String s : list2) { if(s.startsWith("张")){ list2_0.add(s); } } ArrayList<String> list2_1 = new ArrayList<>(); for (int i = 2; i <list2_0.size(); i++) { list2_1.add(list2_0.get(i)); } ArrayList<String> list3 = new ArrayList<>(); list3.addAll(list1_1); list3.addAll(list2_1); ArrayList<Persion> persions = new ArrayList<>(); for (String s : list3) { persions.add(new Persion(s)); } for (Persion persion : persions) { System.out.println(persion.getName()); } } }
运行结果
宋远桥 苏星河 石破天 张三丰
四 使用Stream实现
import java.util.ArrayList; import java.util.stream.Stream; public class demo_test_for { public static void main(String[] args) { ArrayList<String> list1 = new ArrayList<>(); list1.add("迪丽热巴"); list1.add("宋远桥"); list1.add("苏星河"); list1.add("石破天"); list1.add("石中玉"); list1.add("老子"); list1.add("庄子"); list1.add("洪七公"); ArrayList<String> list2 = new ArrayList<>(); list2.add("古力娜扎"); list2.add("张无忌"); list2.add("赵丽颖"); list2.add("尼格拉斯"); list2.add("张天爱"); list2.add("张三丰"); Stream<Persion> stream = Stream.concat(list1.stream().filter((name) -> name.length() == 3).limit(3), list2.stream().filter((name) -> (name.startsWith("张"))).skip(2)) .map((name) -> new Persion(name)); stream.forEach((Persion p)-> System.out.println(p.getName())); } }
运行结果
宋远桥 苏星河 石破天 张三丰