集合元素处理(传统方式和Stream方式)
集合元素处理(传统方式)
/* 现在有两个ArrayList集合存储队伍当中的多个成员姓名,要求使用传统的for循环(或增强for循环)一次进行以下操作 1.第一个队伍只要名字为3个字的成员姓名,存储到一个新集合中 2.第一个队伍筛选之后只要前3个人,存储到一个新集合中 3.第二个队伍只要姓张的成员姓名,存储到一个新集合汇总新集合中 4.第二个队伍筛选之后不要前2个人,储存到一个 5.将两个队伍合并为一个队伍,存储到一个新集合中 6.根据姓名创建Person对象,存储到一个新集合中 7.打印整个队伍为的Person对象信息 */ public static void main(String[] args) { //第一只队伍 ArrayList<String> one = new ArrayList<>(); one.add("迪丽热巴"); one.add("宋远桥"); one.add("苏星河"); one.add("石破天"); one.add("石傲玉"); one.add("庄子"); //1.第一个队伍只要名字为3个字的成员姓名,存储到一个新集合中 ArrayList<String> one1 = new ArrayList<>(); for (String s : one) { if (s.length()==3){ one1.add(s); } } //2.第一个队伍筛选之后只要前3个人,存储到一个新集合中 ArrayList<String> one2 = new ArrayList<>(); for(int i= 0;i<3;i++){ one2.add(one1.get(i)); } //第二只队伍 ArrayList<String> two = new ArrayList<>(); two.add("张无忌"); two.add("哎嘿嘿"); two.add("狂铁"); two.add("钟馗"); two.add("宫本"); // 3.第二个队伍只要姓张的成员姓名,存储到一个新集合汇总 ArrayList<String> two1 = new ArrayList<>(); for (String s : two) { if (s.startsWith("张")){ two1.add(s); } } // 4.第二个队伍筛选之后不要前2个人,储存到一个 ArrayList<String> two2 = new ArrayList<>(); for(int i= 2;i<two1.size();i++){ two2.add(two1.get(i)); } //5.将两个队伍合并为一个队伍,存储到一个新集合中 ArrayList<String> all = new ArrayList<>(); all.addAll(two2); all.addAll(one2); // 6.根据姓名创建Person对象,存储到一个新集合中 ArrayList<Person> list = new ArrayList<>(); for(String name : all){ list.add(new Person(name)); } // 7.打印整个队伍为的Person对象信息 for (Person person : list) { System.out.println(person); } }
//运行结果
Person{name='宋远桥'}
Person{name='苏星河'}
Person{name='石破天'}
集合元素处理(Stream方式)
public static void main(String[] args) { //第一只队伍 ArrayList<String> one = new ArrayList<>(); one.add("迪丽热巴"); one.add("宋远桥"); one.add("苏星河"); one.add("石破天"); one.add("石傲玉"); one.add("庄子"); //1.第一个队伍只要名字为3个字的成员姓名,存储到一个新集合中 //2.第一个队伍筛选之后只要前3个人,存储到一个新集合中 Stream<String> oneSteam = one.stream().filter(name -> name.length() == 3).limit(3); ArrayList<String> two = new ArrayList<>(); two.add("张无忌"); two.add("哎嘿嘿"); two.add("狂铁"); two.add("钟馗"); two.add("宫本"); //3.第二个队伍只要姓张的成员姓名,存储到一个新集合汇总新集合中 //4.第二个队伍筛选之后不要前2个人,储存到一个 Stream<String> twoStream = two.stream().filter(name -> name.startsWith("张")).skip(2); // 5.将两个队伍合并为一个队伍,存储到一个新集合中 //6.根据姓名创建Person对象,存储到一个新集合中 //7.打印整个队伍为的Person对象信息 Stream.concat(oneSteam,twoStream).map(name->new Person(name)).forEach(p-> System.out.println(p)); }
//运行结果
Person{name='宋远桥'}
Person{name='苏星河'}
Person{name='石破天'}

浙公网安备 33010602011771号