练习:集合元素处理

题目:

现在有两个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));
    }
复制代码

 

posted @   魔光领域  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示