练习:集合元素处理
题目:
现在有两个ArrayList集合存储队伍当中的多个成员姓名,要求使用传统的for循环(或增强for循环)
依次进行以下若干操作步骤:
1.第一个队伍只要名字为3个字的成员姓名﹔存储到一个新集合中。
2第一个队伍筛选之后只要前3个人;存储到一个新集合中。
3.第二个队伍只要姓张的成员姓名﹔存储到一个新集合中。
4.第二个队伍筛选之后不要前2个人;存储到一个新集合中。
5.将两个队伍合并为一个队伍;存储到一个新集合中。
6.根据姓名创建Person对象;存储到一个新集合中。
7.打印整个队伍的Person对象信息。
集合元素处理(传统方式)
private static void DoStream6_Test1() { //第一支队伍 ArrayList<String> one = new ArrayList<>(); one.add("迪丽热巴"); one.add("杨幂"); 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("张三丰"); 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(one2); all.addAll(two2); //6.根据姓名创建Person对象;存储到一个新集合中。 ArrayList<Person> list = new ArrayList<>(); for (String s : all) { list.add(new Person(s)); } //7.打印整个队伍的Person对象信息。 for (Person person : list) { System.out.println(person); } }
集合元素处理(Stream方式)
private static void DoStream6_Test2() { //第一支队伍 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> two = new ArrayList<>(); two.add("古力娜扎"); two.add("张无忌"); two.add("赵丽颖"); 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(oneStream,twoStream).map(name->new Person(name)).forEach(p-> System.out.println(p)); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix