今天研究arrylist时发现个问题,当指定添加元素位置大于数组实际size时会发生报错。
当我跳过6位置在7位置添加元素时会报错。然后我有尝试将6号位置补充上元素。还是不行,依然报错。很是苦恼。

看add(位置,元素)源码
public void add(int index, E element) {
rangeCheckForAdd(index);
ensureCapacityInternal(size + 1); // Increments modCount!!
System.arraycopy(elementData, index, elementData, index + 1,size - index);
elementData[index] = element;
size++;
}
本文探讨了在使用ArrayList的add()方法时遇到的问题,当尝试在超出数组当前size的位置插入元素,会导致编译错误。博客解释了源码中arraycopy()的机制,并指出add()方法不支持跳过未初始化的位置插入元素。总结指出,只有在已有元素范围内才能使用add()方法进行添加。

2139

被折叠的 条评论
为什么被折叠?



