集合以及子集的增删操作

集合之间的操作-删存交集


 HashSet集合不可加入重复元素
设置两个集合用来示范:

        Collection c1 = new ArrayList();
        c1.add("java");
        c1.add("c++");
        c1.add(".net");
        System.out.println("c1:"+c1);

        Collection c2 = new ArrayList<>();
        c2.add("android");
        c2.add("ios");
        c2.add("java");
        System.out.println("c2:"+c2);

 方法句式:boolean addAll(Collection c)
将参数给定的集合中的所有元素添加到当前集合中,添加后当前集合发生了改变则返回true
        

        c1.addAll(c2); //c1中加入c2的元素
        System.out.println("c1:"+c1);
        System.out.println("c2:"+c2);

   新建一个集合用于之后方法的示范

        Collection c3 = new ArrayList<>();
        c3.add("c++");
        c3.add("android");
        c3.add("java");
        System.out.println("c3:"+c3);

语句方法:boolean containsAll(Collection c);
判断当前集合是否包含参数集合中的所有元素

        boolean contains=c1.containsAll(c3);
        System.out.println("包含所有"+contains);

retain取交集,仅保留c1中与c3共有的元素       

boolean retainAll = c1.retainAll(c3);
System.out.println("c1:"+c1);
System.out.println("c3:"+c3);

 remove删交集,删除c1、c3中共有的元素       

c1.removeAll(c3);
System.out.println("c1:"+c1);
System.out.println("c3:"+c3);

 java.util.List接口


List继承自Collection,是可以存放重复元素且有序的集合
特点:可以通过下标操作元素,使用更加灵活
List常用实现类:
java.util.ArrayList:内部使用数组实现,查询性能更好(随机访问)
java.util.LinkedList:内部使用链表实现,增删元素性能更好,首尾增删性能最佳.
  
注:在对集合操作的性能没有特别苛刻要求时,通常ArrayList是最好的选择.

       新建集合用于示例

        List<String> list = new ArrayList<>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        list.add("6");
        list.add("7");
        list.add("8");       
        System.out.println("list"+list);

 list接口中提供了一套可通过下标操作元素的方法: E get(int index)
        获取指定下标对应的元素

        String e = list.get(2);
        System.out.println(e);

        for (int i=0;i<list.size();i++){
            e=list.get(i);
            System.out.println(e);
        }

 方法语句: E set(int index,E e)
        将给定元素设置到指定位置,返回值为被替换的元素

        String old=list.set(2,"6");
        System.out.println(list);
        System.out.println(old);

        将集合反转

        for (int i=0;i<list.size()/2;i++){
            list.set(i,list.set(list.size()-i-1,list.get(i)));
        }
        System.out.println(list);

        简单方法集合反转
        java.util.Collections是集合的工具类

        Collections.reverse(list);
        System.out.println(list);

     List重载add,remove方法


新建一个集合用于示例:

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

方法语句: void add(int index,E e)
作用:将给定元素e添加到index指定位置,插入元素操作

        list1.add(3,"6");
        System.out.println(list1);

方法语句:  E remove(int index)
作用: 删除并返回指定位置的元素

    System.out.println(list1.remove(3));
    System.out.println(list1);

 List提供了子集的操作


获取子集的语句:List subList(int start,int end)
注:泛型只能写引用类型,int包装类Integer,新建一个集合并赋值

 List<Integer> list =new ArrayList<>();
        for(int i=0;i<10;i++){
            list.add(i);
        }
        System.out.println(list);

     获取3-7:建成子集

List<Integer> subList = list.subList(3,8);
System.out.println(subList);

        将子集每个元素扩大10倍,原集合也发生了改变,对子集的操作就是对原集合对应元素的操作    

        for(int i=0;i<subList.size();i++){
            subList.set(i,subList.get(i)*10);
        }
        System.out.println(subList);
        System.out.println(list);//[0, 1, 2, 30, 40, 50, 60, 70, 8, 9]

        删除list集合中2-8部分

        list.subList(2,9).clear();
        System.out.println(list);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值