posts - 397,comments - 0,views - 25332

练习:集合元素处理(传统方式)

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

 

posted on   淤泥不染  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示