关于java里ArrayList类的remove(index)方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java里ArrayList类的remove(index)方法相关的知识,希望对你有一定的参考价值。

ArrayList 的remove(index)方法返回 移除的那个值
为甚么这句没错误
ArrayList <Integer>T=new ArrayList<inTeger>(Arrays.asList(1,2,3));
T.remove(2); //这句

因为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对象就是个空。
参考技术A 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;
参考技术B 你好:
请问这句你觉得他怎么错了,T.remove(2);下标2是有的,remove怎么会有错呢追问

这个方法没有返回值吗 ?
我在jdk上看的这个方法返回 从列表中移除的元素

追答

你好:
这句是会返回3,但是你没有接收哦

追问

方法返回值类型不为空,也可以自己运行哈,不过没有接收,要接收也是可以的
是这样吧?

追答

对,返回的是被删除的那个元素的类型,就是Integer,你可以用个int a = T.remove(2);然后输出一下就可以看到了

本回答被提问者采纳

以上是关于关于java里ArrayList类的remove(index)方法的主要内容,如果未能解决你的问题,请参考以下文章

为什么阿里巴巴Java开发手册中强制要求不要在foreach循环里进行元素的remove和add操作?

谁能说明一下java里list这个类怎么用,要详细

使用类的 ArrayList 在 Spring 中实现 CRUD

Java ArrayList.remove() 不起作用? [复制]

java去掉实体类的空属性

List的remove方法里的坑