集合的创建与常用方法

//list.clear();//清空集合

System.out.println(c.contains(600));//false,集合中不包括600
System.out.println(c.isEmpty());//false,集合不为空
System.out.println(c.remove(100));//删除集合中的元素100
System.out.println(c);
System.out.println(c.size());//4,获取集合中的元素个数

c.retainAll(c2);//取c和c2共有的元素

System.out.println(Arrays.toString(c.toArray()));//集合转数组并打印

System.out.println(list.contains("100"));//false,是否包含string类型的元素100
System.out.println(list.get(0));//100,获取集合中下标处为0元素
System.out.println(list.indexOf(400));//获取元素第一次出现的索引
System.out.println(list.lastIndexOf(400));//获取元素最后一次出现的索引
list.remove(1);//删除下标处为1的元素
System.out.println(list);

//System.out.println(list.remove(300));
        /*上面的代码会报错:数组下标越界:index 300  size  5
        * 主要是因为List中有两个重载的remove()方法,
        * 如果直接传入数字300
        * 会直接匹配int类型的index索引方法,而不会认为这是一个integer类型的数据
        * 所以,如果想要根据指定元素删除数据,需要把int类型的数据手动装箱成integer*/
        list.remove(Integer.valueOf(300));//
        System.out.println(list);


        list.size();//获取集合的元素个数
        list.set(2, 777);//修改下标2的元素值,值为777
        System.out.println(list);

整体表示操作

List<String> list = new ArrayList<>();
        list.add("徐凤年");
        list.add("南宫仆射");
        list.add("姜泥");
        list.add("裴南苇");
        list.add("轩辕青锋");
        System.out.println(list);

        System.out.println(list.contains("徐凤年"));//true
        System.out.println(list.isEmpty());//true
        System.out.println(list.remove("轩辕青锋"));//删除元素轩辕青锋
        System.out.println(list.size());//4,获取集合中的元素
        System.out.println(Arrays.toString(list.toArray()));//转数组并打印

        List<String> list1 = new ArrayList<>();
        list1.add("1");
        list1.add("2");
        list1.add("3");
        list1.add("4");
        System.out.println(list1);

        list.addAll(list1);//将集合list1的元素添加到list中
        System.out.println(list);
        System.out.println(list.containsAll(list1));//true,判断集合1是否包含集合2中的所有元素
        list.removeAll(list1);//删除集合1中属于集合2的元素
        System.out.println(list);
        list1.retainAll(list);//保留集合2中两个集的公共元素
        System.out.println(list);
        System.out.println(list1);//变成空集,谁来谁调用影响

        /*List接口是有下标的、有序的、可以存放重复元素的*/
        list.add("陆丞燕");//追加在最后
        list.add(1,"王初冬");//在指定的索引处添加元素
        list.add(3,"姜泥");
        System.out.println(list);

        System.out.println(list.indexOf("姜泥"));//判断元素第一次出现的下标
        System.out.println(list.lastIndexOf("姜泥"));//判断元素最后一次出现的下标
        list.remove(4);//根据下标删除元素,并把被删除的元素返回
        System.out.println(list);//[徐凤年, 王初冬, 南宫仆射, 姜泥, 裴南苇, 陆丞燕]
        System.out.println(list.get(5));//陆丞燕,根据索引获取对应的元素
        System.out.println(list.set(1, "红薯"));//王初冬,根据索引修改指定位置的元素
        System.out.println(list);//[徐凤年, 红薯, 南宫仆射, 姜泥, 裴南苇, 陆丞燕]

        list1.add("1");
        list1.add("2");
        list1.add("3");
        list.addAll(list1);
        System.out.println(list);
        list.addAll(1,list1);
        System.out.println(list);

集合的迭代方式

 //创建List接口的多态对象
        List<String> list = new ArrayList<>();
        list.add("陈平安");
        list.add("顾璨");
        list.add("林守一");
        list.add("刘羡阳");
        list.add("李槐");
        list.add("李宝瓶");
        System.out.println(list);

        /*集合的迭代方式
        * 1.for循环
        * 2.foreach循环
        * 3.iterator迭代器循环
        * 4.listIterator
        * */
        //方式一:因为List集合是有序的,元素是有下标的,所以可以根据下标进行遍历
        //从哪开始  到哪结束  如何变化
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("*********方式一*********");

        //方式二:因为普通for循环写法复杂,效率还低,所以使用高效for循环
        //格式:for(每轮遍历到的元素类型  元素名:要便利的数组/集合名){循环体}
        for(String s:list){
            System.out.println(s);
        }
        System.out.println("******************方式二*************");

        //方式三:使用的是从父接口Collection处继承过来的迭代器iterator
        Iterator<String> s = list.iterator();
        while (s.hasNext()){
            System.out.println(s.next());
        }
        System.out.println("***********方式三*************");

        //方式四:使用List接口特有的迭代器ListIterator
        /*ListIterator是List接口特有的迭代器
        * ListIterator<E>---子接口---继承了父类的功能
        * 还有自己的特有功能,比如逆序遍历,但是并不常用*/
        ListIterator<String> it = list.listIterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值