【发布时间】:2020-05-30 08:07:09
【问题描述】:
以下是示例代码。
如何删除 ArrayList 中的特定元素?
import java.util.ArrayList;
class A {
int value;
public A(int newValue) {
setValue(newValue);
}
public int getValue() {
return value;
}
public void setValue(int newValue) {
value = newValue;
}
}
class B {
ArrayList <A> valuesOfA = new ArrayList<>();
valuesOfA.add(new A(5));
System.out.println("Adding...");
for (A value: valueOfA) {
System.out.println(value); //prints the values added.
}
valuesOfA.remove(new A(5));
System.out.println("Removed");
for (A value: valueOfA) {
System.out.println(value);
}
}
元素仍未被删除。解决办法是什么?
【问题讨论】:
-
因为您不是在删除同一个对象,而是在删除一个全新的对象。查找 equals() 和 hashcode()。这些定义了对象相等性。
-
您要删除之前创建的
A的特定实例,还是要根据一个或多个属性值删除一个或多个As? -
我正在寻找删除特定实例。
-
您在问题中写道:remove() 适用于原始数据类型 Java 不允许创建
ArrayList的原始数据类型。参考Autoboxing and Unboxing