JAVA - ArrayList是否会越界?
JAVA - ArrayList是否会越界?
ArrayList并发add()可能出现数组下标越界异常。
ArrayList是实现了基于动态数组的数据结构。
LinkedList是基于链表的数据结构
对于随机访问get和set,ArrayList要优于LinkedList,因为LinkedList要移动指针;
扩展:在ArrayLIst和LinkedList尾部加元素,谁的效率高?
当输入的数据一直是小于千万级别的时候,大部分是LinkedList效率高,而当数据量大于千万级别的时候,就会出现ArrayList的效率比较高了。
原来 LinkedList每次增加的时候,会new 一个Node对象来存新增加的元素,所以当数据量小的时候,这个时间并不明显,而ArrayList需要扩容,所以LinkedList的效率就会比较高,其中如果ArrayList出现不需要扩容的时候,那么ArrayList的效率应该是比LinkedList高的,当数据量很大的时候,new对象的时间大于扩容的时间,那么就会出现ArrayList的效率比LinkedList高了