目录
list实现原理
List集合是java中比较常用的一个,下面有ArrayList,LinkedList,Vector 主要看一下ArrayList
ArrayList底层是由动态数组实现的,动态数组就是长度不固定,随着数据的增多而变长。
当实例化ArrayList时(比如 List<Integer> list = new ArrayList<>()); 如果不指定长度的话,则默认为10.
当ArrayList增加元素的时候,它是按照顺序从头部开始往后添加,是有顺序的
如果当添加的元素超过当前数组的长度时,它会创建一个新的数组,长度为当前数组的1.5倍,然后将当前数组的元素复制到新的数组,当前数组的内存会被释放