java的常用集合

java的常用集合,第1张

单列集合

双列集合(键值对形式)

Collection接口常用方法

因为Collection接口无法直接实例化,因此此处使用实现了Collection接口的List类来演示 

        List list = new ArrayList();
        list.add("jack");
        list.add(10);
        list.add(true);
        System.out.println(list);
        Integer d = (Integer) list.get(1);
        //删除指定元素
        list.remove(d);
        System.out.println(list);
        //contains:查找元素是否存在
        System.out.println(list.contains("jack"));
        //获取元素格式
        System.out.println(list.size());
        //isEmpty:判断是否为空
        System.out.println(list.isEmpty());
        //clear:清空
        list.clear();
        System.out.println(list);
        //addAll:添加多个元素
        ArrayList list2 = new ArrayList();
        list2.add("西游记");
        list2.add("西游记2");
        list.addAll(list2);
        System.out.println(list);
        //containsAll:查找多个元素是否都存在
        System.out.println(list.containsAll(list2));
        //删除多个元素
        list.removeAll(list2);
        System.out.println(list);
ArrayList

1.ArrayList是由数组来实现数据存储的,

2.ArrayList基本等同于Vector,除了ArrayList是线程不安全的(执行效率高),有源码分析没有关键字synchronized修饰,在多线程情况下不建议使用ArrayList 

ArrayList的底层 *** 作机制源码分析:

1)ArrayList中维护了一个Object类型的数组elementData,ArrayList使用这个数组来存储数据,所以说ArrayList底层是一个数组

transient Object[] elementData; //transient 有瞬间,短暂的意思,该关键字表示其所修饰的属性不会被序列化

如果使用的是无参构造,则初始的elementData容量为0,第1次添加,则将其扩容为10,后面再次扩容则扩容为原来的1.5倍

3)如果使用的是指定大小的构造器,则elementData的初始容量为指定大小,后面在扩容则扩容为原来的1.5倍

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/919738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存