public void clear() {
modCount++;
// clear to let GC do its work
for (int i = 0; i < size; i++)
elementData[i] = null;
size = 0;
}
实现为循环elementData中的元素设置为null,为什么不用elementData=EMPTY_ELEMENTDATA
public void clear() {
modCount++;
// clear to let GC do its work
for (int i = 0; i < size; i++)
elementData[i] = null;
size = 0;
}
实现为循环elementData中的元素设置为null,为什么不用elementData=EMPTY_ELEMENTDATA
我的理解是这样的,调用clear之后,后续可能还会添加元素,设置为空的话,就需要申请内存,应该是为了避免这种申请内存的开销。