https://www.jianshu.com/p/407afb4a267a
集合主要分为两大类:

  • 单列集合:List,Set
  • 双列集合:Map

单列集合
image.png

双列集合
image.png

List

ArrayList底层源码
1.ArrayList中维护了一个Object类型的数组elementData
transient Object[] elementData;
2.当创建ArrayList对象时,如果使用的是无参构造器,则初识elementData容量为0,第一次添加,则扩容到10,后面的扩容大小为当前容量右移一位
3.如果使用的是指定大小的构造器,则初始elementData容量为指定大小,如果需要扩容,则直接扩容elementData为1.5倍。
image.png
image.png
image.png

Set

  • 无序,即插入的顺序和取出的顺序不一致,没有索引
  • 不允许重复元素,所以最多包含一个null

image.png

Map