关于java里ArrayList类的remove(index)方法
发布网友
发布时间:2022-04-18 03:52
我来回答
共3个回答
热心网友
时间:2022-04-18 05:22
因为list是有顺序的,先add的编号就小(从0开始),这样就可以通过remove(编号)的形式进行删除,之后后面的会编号依次变小(也就是说编号总是连续的)。举例:
List list = new linkedList();
list.add("0");
list.add("1");
list.remove(0);
结果就是:list.get(0) =1;
备注:如果在一次“list.remove(0);”那么list对象就是个空。
热心网友
时间:2022-04-18 06:40
remove(int)用于删除ArrayList数组容器中指定位置int上的元素,并返回此元素.
Java源代码
public E remove(int index) {
RangeCheck(index);
modCount++;
E oldValue = elementData[index];
//numMoved需要移动的元素个数,也就是index后面的所有的元素个数
int numMoved = size - index - 1;
//将index后面的所有元素全部往前依次移动一个位置
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
//经过arraycopy的移位,数组容器的最个位置被腾空,
//但是仍然持有某个对象的引用,需要把这个多余的引用置为null.
elementData[--size] = null; // Let gc do its work
return oldValue;
}
热心网友
时间:2022-04-18 08:14
你好:
请问这句你觉得他怎么错了,T.remove(2);下标2是有的,remove怎么会有错呢