练习:集合元素处理(传统方式)
现在有两个ArrayList集合存储队伍当中的多个成员姓名,要求使用传统的for循环(或增强for循环)依次进行以下若干操作步骤
1.第一个队伍只要名字为3个字的成员姓名;存储到一个新的集合中。
2.第一个队伍筛选之后只要前三个人;存储到一个新集合中
3.第二个队伍只要姓张的成员姓名;存储到一个新集合中。
4.第二个队伍筛选之后不要前两个人;存储到新集合之中。
5.将两个队伍合并为一个队伍;存储到一个新集合之中
6.根据姓名创建Person对象;存储到一个新集合中。
7.打印整个队伍的Person对象
实现:
//第一个队伍只要名字为3个字的成员姓名;存储到一个新的集合中。 ArrayList<String> one = new ArrayList<>(); one.add("迪丽热巴"); one.add("宋远桥"); one.add("苏星河"); one.add("石破天"); one.add("石中玉"); one.add("老子"); one.add("庄子"); one.add("洪七公"); ArrayList<String> one1 = new ArrayList<>(); for (String name : one) { if (name.length()==3){ one1.add(name); } }
//.第一个队伍筛选之后只要前三个人;存储到一个新集合中。 ArrayList<String> one2 = new ArrayList<>(); for (int i = 0; i < 3; i++) { one2.add(one1.get(i)); }
ArrayList<String> tow = new ArrayList<>(); tow.add("古力娜扎"); tow.add("张无忌"); tow.add("赵丽颖"); tow.add("张三丰"); tow.add("尼古拉斯赵四"); tow.add("张天爱"); tow.add("张二狗"); //第二个队伍只要姓张的成员姓名;存储到一个新集合中。 ArrayList<String> tow1 = new ArrayList<>(); for (String name : tow){ if (name.startsWith("张")){ tow1.add(name); } }
//4.第二个队伍筛选之后不要前两个人;存储到新集合之中。 ArrayList<String> tow2 = new ArrayList<>(); for (int i = 2; i < tow1.size(); i++) { tow2.add(tow1.get(i)); }
//5.将两个队伍合并为一个队伍;存储到一个新集合之中 ArrayList<String> list = new ArrayList<>(); list.addAll(one2); list.addAll(tow2);
//6.根据姓名创建Person对象;存储到一个新集合中。 ArrayList<Person> list1 = new ArrayList<>(); for (String name: list){ list1.add(new Person(name)); }
//7.打印整个队伍的Person对象 for (Person person : list1) { System.out.println(person); }
练习:集合元素处理(Stream方式)
实现:
public static void main(String[] args) { //第一个队伍只要名字为3个字的成员姓名;存储到一个新的集合中。 ArrayList<String> one = new ArrayList<>(); one.add("迪丽热巴"); one.add("宋远桥"); one.add("苏星河"); one.add("石破天"); one.add("石中玉"); one.add("老子"); one.add("庄子"); one.add("洪七公"); //1. 第一个队伍只要名字为3个字的成员姓名;存储到一个新集合中。 //2. 第一个队伍筛选之后只要前3个人;存储到一个新集合中。 Stream<String> oneStream = one.stream().filter(name->name.length()==3).limit(3); ArrayList<String> tow = new ArrayList<>(); tow.add("古力娜扎"); tow.add("张无忌"); tow.add("赵丽颖"); tow.add("张三丰"); tow.add("尼古拉斯赵四"); tow.add("张天爱"); tow.add("张二狗"); //3. 第二个队伍只要姓张的成员姓名;存储到一个新集合中。 //4. 第二个队伍筛选之后不要前2个人;存储到一个新集合中。 Stream<String> towStream = tow.stream().filter(name->name.startsWith("张")).skip(2); //5. 将两个队伍合并为一个队伍;存储到一个新集合中。 //6. 根据姓名创建Person对象;存储到一个新集合中。 //7. 打印整个队伍的Person对象信息。 Stream.concat(oneStream,towStream).map(name->new Person(name)).forEach(p-> System.out.println(p)); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)