ArrayList
public class ArrayList<E> extends AbstractList<E> implements List<E>,
RandomAccess, Cloneable, Serializable
问题:
1、底层的数据结构是什么
2、怎么扩容
数据结构:
数组
增删改查:
增:
public boolean add(E paramE) { ensureCapacity(this.size + 1); this.elementData[(this.size++)] = paramE; return true; } public void ensureCapacity(int paramInt) { this.modCount += 1; int i = this.elementData.length; if (paramInt > i) { Object[] arrayOfObject = this.elementData; int j = i * 3 / 2 + 1; if (j < paramInt) { j = paramInt; } this.elementData = Arrays.copyOf(this.elementData, j); } }
扩容1.5倍
查:
检查是否越界,返回对应数据。
删:
同上
改:
同上