1
모델 클래스에서 equals 메서드를 재정의하고 항상 false를 반환하면 true입니다. hashCode는 항상 상수 값을 반환합니다. 개체를 만들고 추가하면 HashSet/HashMAp에서 중복을 감지하는 방법을 설정합니까?Equals 및 HashMap/HashSet
public class Employee {
int id;
String name;
@Override
equals(){
return false;
}
}
public static void main(String[] args) {
HashMap<Employee,String> hk= new HashMap<Employee,String>();
Employee e1 = new Employee();
e1.setId(18);
e1.setName("roohi");
hk.put(e1, "hello");
hk.put(e1, "hello");
}
Equals 메서드가 false를 반환하면 e1.equals(e1)
이 false를 반환합니다. 따라서 값은 두 번 추가되지만 값은 한 번만 추가해야합니다. 아무도 이것을 설명 할 수 있습니까? 내가 봤어 및 HashCode에 대한 내 개념을 지우고 계약과 동일하지만 여기 실패하고 있습니다.
그렇지 않습니다. 모든 항목이 동일한 버킷에 있습니다. –