ArrayList原理:
以数组实现。节约空间,但数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组,因此最好能给出数组大小的预估值。默认第一次插入元素时创建大小为10的数组。可以认为就是我们常说的“动态数组”。
LinkedList原理:
LinkedList底层的数据结构是基于双向循环链表的,且头结点中不存放数据,如下:
以数组实现。节约空间,但数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组,因此最好能给出数组大小的预估值。默认第一次插入元素时创建大小为10的数组。可以认为就是我们常说的“动态数组”。
LinkedList底层的数据结构是基于双向循环链表的,且头结点中不存放数据,如下: