Java学习笔记<五>(Collection:ArrayList)

ArrayList

  常见使用

        /*Arraylist集合*/
        //创建ArrayList容器对象,泛型指定对象(容器)中元素类型
        //ArrayList容器基于数组结构
        List<String> yy=new ArrayList<>(); //接口声明,面向对象变成又称为面向接口编程
        //为容器添加元素,返回Boolean值,true为添加成功,false为添加不成功
        boolean yang = yy.add("yang");
        boolean jing = yy.add("jing");
        System.out.println(yang);       //true
        System.out.println(jing);       //true

        /**
         *无返回值,在指定索引位置添加元素,当前位置如有元素,则整体向后移位
         */
        //索引值不能大于或等于元素个数,否则越界异常
        yy.add(1,"da");


        System.out.println("-----使用for循环遍历容器中的元素------");
        boolean yang1 = yy.remove("yang");
        System.out.println(yang1);          //true
        for (int i=0;i<yy.size();i++){
            System.out.println(yy.get(i));  // da jing
        }


        System.out.println("-----删除指定索引元素------");
        //删除容器中指定索引位置元素,并且返回删除元素
        String remove = yy.remove(1);
        System.out.println(remove);           //jing
        for (int i=0;i<yy.size();i++){
            System.out.println(yy.get(i));    //da
        }


        System.out.println("-----删除指定元素------");
        //删除容器中指定元素(全部删除),返回boolean值,true为删除成功,false为容器中不存在指定元素
        boolean yang2 = yy.remove("yang");
        System.out.println(yang2);           //false
        for (int i=0;i<yy.size();i++){
            System.out.println(yy.get(i));   //da
        }


        System.out.println("-----替换元素------");
        String ee = yy.set(0, "替换");//替换指定位置元素,并返回被替换的元素
        System.out.println(ee);              //da
        for (int i=0;i<yy.size();i++){
            System.out.println(yy.get(i));   //替换
        }


        System.out.println("-----清空容器------");
        yy.clear();                          //清空容器中所有元素,无返回值
        System.out.println(yy.size());       // 0 查看容器中元素的个数,无返回值,容器已被清空


        System.out.println("-----判断容器是否为空------");
        boolean hen = yy.add("hen");
        boolean qiang = yy.add("qiang");
        boolean empty = yy.isEmpty();        //如果容器为空返回true,否则返回false
        System.out.println(empty);
        for (int i=0;i<yy.size();i++){
            System.out.println(yy.get(i));   //false hen qiang
        }


        System.out.println("-----判断容器中是否包含指定元素------");
        boolean qiang1 = yy.contains("qiang"); //判断容器中是否包含指定元素,包含返回true,否则返回false
        //参数类型为object数据类型
        boolean contains1 = yy.contains(1);
        boolean contains3 = yy.contains(3);
        System.out.println(qiang1);          //true
        System.out.println(contains1);       //false
        System.out.println(contains3);       //false


        System.out.println("-----查找元素在容器中第一次或最后一次出现的位置(返回索引值)-----");
        //添加一个重复元素
        boolean hen1 = yy.add("hen");
        //返回容器中元素第一次出现的索引,有返回当前索引值,无返回-1
        int i1 = yy.indexOf("hen");          //返回元素在容器中第一次出现的元素
        int i2 = yy.indexOf(2);              //无索引元素时返回-1
        int i3 = yy.lastIndexOf("hen");   //返回元素在容器中最后一次出现的位置
        for (int i=0;i<yy.size();i++){
            System.out.println(yy.get(i));   // hen qiang hen
        }
        System.out.println(i1);              //  0
        System.out.println(i2);              // -1
        System.out.println(i3);              //  2


        System.out.println("-----将单例集合转换为数组-----");
        System.out.println("-----转换为Object[]数组-----");
        //将ArrayList集合转换为Object[]数组
        Object[] objects = yy.toArray();     //yy容器中的元素本质上仍然为Object类型,泛型不能改变真正的数据类型
        for (int i = 0;i<objects.length; i++){
            String str = (String) objects[i];
            System.out.println(str);         // hen qiang hen
        }


        System.out.println("-----转换为指定类型数组-----");
        //将ArrayList集合转换为指定类型数组(根据泛型进行转换)
        //创建一个新数组接收集合中元素,为数组开辟指定长度空间,长度为集合的数据个数
        System.out.println(yy.size());       //3
        String[] strings = yy.toArray(new String[yy.size()]);
        for (int i=0;i<strings.length;i++){
            System.out.println(strings[i]);  //hen qiang hen
        }

   并集操作

        System.out.println("-----容器的并集操作-----");
        //创建两个ArrayList集合
        ArrayList<String> strings1 = new ArrayList<>();
        boolean ji = strings1.add("ji");
        boolean he = strings1.add("he");
        System.out.println(ji);              //true
        System.out.println(he);              //true
        ArrayList<String> strings2 = new ArrayList<>();
        boolean jii = strings2.add("集");
        boolean hee = strings2.add("合");
        System.out.println(jii);             //true
        System.out.println(hee);             //true
        //创建一个空集合
        ArrayList<String> strings3 = new ArrayList<>();
        //将strings1和strings2集合合并
        boolean b = strings1.addAll(strings2);
        System.out.println(b);               //true
        //不是集合不能直接转换为其它类型数组? 已经解决
        for (String h:strings1){
            System.out.println(h);           //ji he 集 合
        }
        //非空集合合并空集合,合并失败,返回false,仍为非空集合
        //空集合合并非空集合,合并成功,返回true,空集合为非空集合所有元素
        //合并时的先后顺序影响返回的Boolean值
        boolean b1 = strings3.addAll(strings1);
        System.out.println(b1);
        for (int i=0;i<strings3.size();i++){
            System.out.println(strings3.get(i));   //ji he 集 合
        }

    交集操作

        System.out.println("-----容器的交集操作-----");
        //创建三个ArrayList集合,两个非空集合,一个空集合
        ArrayList<String> vv = new ArrayList<>();
        vv.add("a");
        vv.add("b");
        vv.add("c");
        ArrayList<String> bb = new ArrayList<>();
        bb.add("b");
        bb.add("c");
        bb.add("d");
        ArrayList<String> nn = new ArrayList<>();
        //非空集合求交集
        boolean b2 = vv.retainAll(bb);        //true
        System.out.println(b2);
        for (String k:vv){
            System.out.println(k);            //b  c
        }
        //非空与空集合求交集
        //交集返回true,成功,集合中无元素,为空集
        boolean b3 = vv.retainAll(nn);
        System.out.println(b3);               //true
        System.out.println(vv.size());        //0

    差集操作

        System.out.println("-----容器的差集操作-----");
        ArrayList<String> a1 = new ArrayList<>();
        a1.add("a");
        a1.add("b");
        a1.add("c");
        ArrayList<String> aa1 = new ArrayList<>();
        aa1.add("b");
        aa1.add("c");
        aa1.add("d");
        //根据求差顺序不同,差集的结果不同
        //求两个集合的差集:a1-aa1
        System.out.println(a1.removeAll(aa1));      //true
        for (String d1:a1){
            System.out.println(d1);                 //a
        }
        //求两个结合的差集:aa1-a1
        System.out.println(aa1.removeAll(a1));      //false
        for (String h1:aa1){
            System.out.println(h1);                 //b c d
        }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腊Rou单车

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值