我已经覆盖了一个对象类的equals,这样每次在将该类的对象添加到数组列表时发生重复时,都会弹出一个对话框。但这会弹出数组列表的remove()。有没有办法根据哪个方法使用equals来设置这个条件?像两个不同的等号,或者可能使用另一个数组列表方法,可以让你指定哪个等于使用?
编辑: 很抱歉我的问题很不清楚。 这是我重写的equals和hashcode方法:
@Override
public boolean equals(Object s) {
if(!(s instanceof Car)) {
return false;
}
Car s2 = (Car)s;
if(this.name.equals(s2.name) && this.ride.equals(s2.ride)){
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Delete Item");
alert.setHeaderText(
"Are you sure?");
alert.showAndWait();
return true;
}
return false;
}
@Override
public int hashCode(){
int hashC;
hashC = name.hashCode();
hashC *= ride.hashCode();
return hashC;
}
至于其余部分,我使用HashSet自动删除重复项。
答案 0 :(得分:1)