【问题标题】:How can i remove an elements from Arraylist without using clear() or whatever methods? [duplicate]如何在不使用 clear() 或任何方法的情况下从 Arraylist 中删除元素? [复制]
【发布时间】:2015-09-21 18:56:40
【问题描述】:

我尝试过编写代码,在不使用 clear() 和 remove() 的情况下删除 Arraylist 中的所有元素。或来自类 ArrayList 的任何内容

查看我的代码:

for (int i=0 ; i<a.size(); i++) 
                    a.get(i) =null ;

但我有一个错误:

赋值的左边必须是变量

有什么想法吗?

【问题讨论】:

  • 即使 Java 有索引器语法,您所建议的只是将 null 设置在该列表位置。这与“删除”不同。
  • 如果列表有clear 方法,那是有原因的。照原样使用类并使用其方法,或者根本不使用该类

标签: java eclipse arraylist


【解决方案1】:

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

如果你想删除元素,你应该使用remove。或者清除,对于所有这些。

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

【讨论】:

  • 仅供参考:但如果我们使用a.set(i, null),arrayList 的大小不会改变,因为数组会将原始值替换为空值。
  • 因此限定符“如果您希望将它们设置为空”,作为第一段的后续和第二段的替代(这是想要删除元素的情况)。我在回答中很清楚这一点。
【解决方案2】:

a.get() 将返回一个 值而不是引用持有者,即“=”运算符的左侧操作数应该是可以保存右侧表达式给出的结果的某个变量等号运算符。

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

【讨论】:

  • valuevariable 有什么区别?我认为您的意思是指针或类似的东西
  • 是的。等号运算符的左侧必须是变量或引用持有者。
  • @Dici 但是如果我们使用这个a.set(i, null),arrayList 的大小不会改变,因为数组会将原始值替换为空值。
  • 我知道,我只是指出词汇中的错误。否则答案是正确的
  • 是的,我明白了。谢谢。(y)
猜你喜欢
  • 1970-01-01
  • 2021-12-03
  • 2018-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多