Проблема в следующем: необходимо удалить повторяющиеся элементы ArrayList'а. Для этого использую следующий код:
private List<NameCode> removeAllRepeated(List<NameCode> list) {
Set<NameCode> hs = new LinkedHashSet<NameCode>(list);
list.clear();
list.addAll(hs);
return list;
}
Но удаление не происходит. Класс NameCode:
public class NameCode {
private String name;
private Integer code;
public NameCode(Integer code, String name) {
this.name = name;
this.code = code;
}
public String getName() {
return name;
}
public Integer getCode() {
return code;
}
@Override
public boolean equals(Object obj) {
return this.code == ((NameCode) obj).getCode();
}
@Override
public int hashCode() {
return getCode();
}
}
Измените методы equals() и hashCode() в классе NameCode на такие (сгенерировано IntelliJ)
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
NameCode nameCode = (NameCode) o;
return Objects.equals(name, nameCode.name) &&
Objects.equals(code, nameCode.code);
}
@Override
public int hashCode() {
return Objects.hash(name, code);
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости