ArrayList和LinkedList的区别
- ArrayList底层是数组结构。
- LinkedList底层使列表结构。适用于实现先进先出Queue队列。可以直接继承实现Java.util.queue
ArrayList底层扩容
ArrayList底层采用数组来实现元素存储,与数组最大的不同点就在于可以实现自动扩容,1.7中,采用newCapacity = oldCapacity +(oldCapacity>>1);改为移位运算,同时扩容容量变为1.5倍。
在JDK1.8中,
如果minCapacity小于10,则会自动将扩容参数增大到10。
如果在初始化时调用无参构造方法,在调用该方法时,会对
minCapacity参数进行比较,如果小于10,则不会进行任何操作,即不会对10以下的主动扩容请求进行处理
如果旧容量的1.5倍不够传入的参数,那么就扩容到指定的参数。