Java 如何在不使用clear()或其他方法的情况下从Arraylist中删除元素?

Java 如何在不使用clear()或其他方法的情况下从Arraylist中删除元素?,java,eclipse,arraylist,Java,Eclipse,Arraylist,我曾尝试编写代码,在不使用clear()和remove()的情况下删除Arraylist中的所有元素。或者是ArrayList类中的任何东西 看看我的代码: for (int i=0 ; i<a.size(); i++) a.get(i) =null ; for(int i=0;ia.get()将返回一个值,而不是一个引用持有者,即“=”运算符的左侧操作数应该是某个变量,它可以保存由equals运算符的右侧表达式给出的结果 在内部,ArrayLi

我曾尝试编写代码,在不使用clear()和remove()的情况下删除Arraylist中的所有元素。或者是ArrayList类中的任何东西

看看我的代码:

for (int i=0 ; i<a.size(); i++) 
                    a.get(i) =null ;
for(int i=0;ia.get()将返回一个值,而不是一个引用持有者,即“=”运算符的左侧操作数应该是某个变量,它可以保存由equals运算符的右侧表达式给出的结果


在内部,ArrayList将在其实现中包含每个元素,而不使用集合的ArrayList API,即
remove()
clear()
您将无法删除其任何项目。

首先,将其设置为null不会删除元素。相反,它只会将其设置为值为null的元素

如果要删除元素,应使用remove.Or clear来删除所有元素


如果您希望将它们设置为null,请使用
a.set(i,null)

即使Java有索引器语法,您的建议也只是在该列表位置设置
null
。这与“删除”不同如果一个列表有一个
clear
方法,那是有原因的。按照类的原样使用它的方法,或者根本不使用类。值和变量之间有什么区别?我想你指的是指针之类的东西。是的。等号运算符的左侧必须是变量或引用持有者。@Dici但如果我们使用这个
a.set(i,null)
,数组列表大小不会改变,因为数组将用null值替换原始值。我知道,我只是指出了词汇表中的错误。答案是正确的。是的,我知道了。谢谢。(y)仅供参考:但是如果我们使用
a.set(i,null)
,arrayList的大小不会改变,因为数组将用null值替换原始值。因此,作为第一段的后续内容和第二段的替代内容(即要删除元素的情况),使用限定符“If you want to set as null”(如果您希望将其设置为null)。我在回答中对此很清楚。