ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-08-02 09:04:35  阅读:166  来源: 互联网

标签:练习 name ArrayList 元素 two add 集合 new


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

题目

现在有两个ArrayList集合存储队伍当中的多个成员姓名,要求使用传统的for循环(或增强for循环
依次进行以下若干操作步骤︰

  1.第一个队伍只要名字为3个字的成员姓名﹔存储到一个新集合中。

  2.第一个队伍筛选之后只要前3个人;存储到一个新集合中。

  3.第二个队伍只要姓张的成员姓名;存储到一个新集合中。

  4.第二个队伍筛选之后不要前2个人﹔存储到一个新集合中。

  5.将两个队伍合并为一个队伍;存储到一个新集合中。

  6.根据姓名创建Person对象;存储到一个新集合中。

  7.打印整个队伍的Person对象信息。

两个对象(集合)的代码如下:

 

package A_Lian_two.D05;



import java.util.ArrayList;

public class Demo01StreamTest {
    public static void main(String[] args) {
        //第一支队伍
        ArrayList<String> one = new ArrayList<>();
        one.add("迪丽热巴");
        one.add("asdf");
        one.add("xcvz");
        one.add("wear");
        one.add("qwe");
        one.add("cxv");
        //第一队伍只要名字为3个字的成员姓名,存储到一个新集合中
        ArrayList<String> one1 = new ArrayList<>();
        for (String name : one) {
            if (name.length()==3){
                one1.add(name);
            }
        }
        System.out.println(one1);

        ArrayList<String> one2 = new ArrayList<>();
        //第一队伍筛选之后只要前3个人;存储到一个新集合中
        for (int i = 0; i < 3; i++) {
            one2.add(one.get(i));
        }
        System.out.println(one2);

        //第二支队伍
        ArrayList<String> two = new ArrayList<>();
        two.add("古力娜扎");
        two.add("阿斯蒂芬");
        two.add("adsf");
        two.add("自行车v给");
        two.add("we热情啊");
        two.add("a速度");
        //第二支队伍只要有a的成员
        ArrayList<String> two1 = new ArrayList<>();
        for (String name : two) {
            if (name.startsWith("a")){
                two1.add(name);
            }
        }
//        System.out.println(two1);
        //第二个队伍筛选之后不要前2个人,存储到一个新集合中
        ArrayList<String> two2 = new ArrayList<>();
        for (int i = 2; i < two1.size(); i++) {
            two2.add(two1.get(i));//不包含0 1
        }
        //将两个队伍合并到一个队伍中
        ArrayList<String> all = new ArrayList<>();
        all.addAll(one2);
        all.addAll(two2);

        //根究姓名创建Person对象,存储到一个新集合中.
        ArrayList<Person> list = new ArrayList<>();
        for (String name : all) {
            list.add(new Person(name));
        }

        //打印
        for (Person name : list) {
            System.out.println(name);
        }
    }
}

 

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

题目

将上一题当中的传统for循环写法更换为Stream流式处理方式。两个集合的初始内容不变,Person类的定义也不变。

解答

等效的Stream流式处理代码为︰

        //stream方法
        Stream<String> oneStream = one.stream().filter(name -> name.length() == 3).limit(3);
        Stream<String> twostream = two.stream().filter(name -> name.startsWith("a")).skip(2);
        Stream.concat(oneStream,twostream).map(name->new Person(name)).forEach(p-> System.out.println(p));

 

标签:练习,name,ArrayList,元素,two,add,集合,new
来源: https://www.cnblogs.com/leijia/p/16542533.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有