为了账号安全,请及时绑定邮箱和手机立即绑定

arraylist

arraylist相关知识

  • ArrayList和LinkedList
    ArrayList的3种初始化方式 //无参构造方法,默认初始化长度0(java 8) public ArrayList(); //用一个Collection对象初始化长度,并将元素添加到ArrayList中 public ArrayList(Collection<? extends E> c); //指定长度 public ArrayList(int initialCapacity); 关于ArrayList扩容 下面是部分源码 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; private static final int DEFAULT_CAPACITY = 10; protected transient int modCount
  • ArrayList 源码分析
    1)ArrayList 特点List 接口的可变数组实现,ArrayList 允许使用任何元素,包括 null。ArrayList 和 Vector 基本类似,只不过 Vector 是线程安全的,ArrayList 是线程不安全的。size、isEmpty、get、set、iterator 和 listIterator 以常量时间运行,其他的操作基本以线性时间运行。每个 ArrayList 都有一个容量,容量表示该 ArrayList 当前能容纳的元素个数,随着元素的增加,ArrayList 会自动扩容。在创建 ArrayList 时可以指定一个合适的初始化容量,以减少频繁扩容带来的性能损耗。ArrayList 是线程不安全的,多线程并发访问 ArrayList 并且至少有一个线程修改了它的结构【增加、删除元素、扩容等】,则 ArrayList 将抛出 ConcurrentModificationException 异常。快速失败机制:iterator 和 listIterator 返回的迭代器是快速失败的
  • ArrayList和Vector、LinkedList
    Vector是同步的,是线程安全的,ArrayList不是线程同步的,而且线程同步是影响性能的,所以性能上ArrayList优于Vector。当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。ArrayList的内部实现是基于内部数组Object[],所以从概念上讲,它更象数组,但LinkedList的内部实现是基于一组连接的记录,所以,它更象一个链表结构,所以,它们在性能上有很大的差别:从上面的分析可知,在ArrayList的前面或中间插入数据时,你必须将其后的所有数据相应的后移,这样必然要花费较多时间,所以,当你的操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;而访问链表中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,所以,当你的操作是在一列数据的前面或中
  • ArrayList扩容机制
    这是一道有赞的面试题,JDK源码中的内容,了解一下对自己也没坏处。ArrayList使用一般新建ArrayList    //DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}     //相当于new ArrayList(0)     public ArrayList() {        this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;     }         public ArrayList(int initia

arraylist相关课程

arraylist相关教程

arraylist相关搜索

查看更多慕课网实用课程

意见反馈 帮助中心 APP下载
官方微信