我有一个人对象的列表。现在我想删除一个对象,我只知道该对象的实例变量。我的意思是我没有对象,我所能做的就是创建另一个具有相同字段值的对象。显然,新对象不能用于删除原始对象,因为两者是不同的。确实是一个非常愚蠢的问题。
2 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
循环遍历集合中的所有对象并将它们的值与已知值进行比较,一旦找到具有相同值的对象,将其删除并中断循环。
就像是:
String knownName = "Joe";
for(Person person : personsCollection)
if(person.getName().equals(knownName)){
personsCollection.remove(person);
break;
}
心有法竹
TA贡献1866条经验 获得超5个赞
这样做的正确方法是在 Person 类中实现 equals 方法,因此当您删除新对象并等于旧对象时,旧对象将从列表中删除。您可以根据应用程序中定义相等性的字段来实现 equals 方法,它可以是一些 id 或名称。
例如:
public boolean equals(Object obj) {
if (obj instanceof Person) {
return name.equals((Perrson)obj).name();
}
return false;
}
添加回答
举报
0/150
提交
取消