У меня есть список объектов:проверка Java, если список объектов содержит объект с бетонным именем
List<City> cities = city.getList();
Я хотел бы, чтобы удалить дубликаты (где дублирует означают объекты с одинаковым значением параметра name
и разные (id
, и другие параметры);
у меня есть код, который:
for(City c: cities) {
System.out.println("analise " + c.name);
if(!temp.contains(c)) {
temp.add(c);
}
}
Я написал для этого хэш-код() и равенства() метод:
@Override
public int hashCode() {
return id.hashCode();
}
...
@Override
public boolean equals(Object other) {
if (other == null) return false;
if (other == this) return true;
if (!(other instanceof GenericDictionary))return false;
GenericDictionary otherMyClass = (GenericDictionary) other;
if(this.name == otherMyClass.name) {
return true;
} else {
return false;
}
}
Но dosnt применить его. Он использует Object.equals() метод вместо моего
Вам не нужно переопределить хэш-код для arraylist. –