https://www.jianshu.com/p/407afb4a267a
集合主要分为两大类:
- 单列集合:List,Set
- 双列集合:Map
单列集合
双列集合
List
ArrayList底层源码
1.ArrayList中维护了一个Object类型的数组elementData
transient Object[] elementData;
2.当创建ArrayList对象时,如果使用的是无参构造器,则初识elementData容量为0,第一次添加,则扩容到10,后面的扩容大小为当前容量右移一位
3.如果使用的是指定大小的构造器,则初始elementData容量为指定大小,如果需要扩容,则直接扩容elementData为1.5倍。
Set
- 无序,即插入的顺序和取出的顺序不一致,没有索引
- 不允许重复元素,所以最多包含一个null