HashMap에서 키로 설정하려는 클래스가 있습니다. 이미 해당 클래스에 대해 compareTo 메서드를 구현했습니다. 하지만 여전히 내가 할 때 :java 해시 맵에서 키를 자체 클래스로 설정
map.put(new MyKey(dummyArguements) , dummyValue); System.out.println(map.get(new MyKey(dummyArguements)));
null가 반환됩니다. 그래서 hashmap은 두 개의 키 (get & put 호출)가 동일하다는 것을 식별 할 수 없다는 것을 의미합니다.
누군가 나를 도와 줄 수 있습니까?
나는 무례 함을 느끼지 않으며 (사실 일 것으로 생각하지 않습니다.) ** ** 어떻게 **이 사실을 알고 계십니까? 나는 [HashMap 문서] (http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html)를 계속 읽고있다. 인터페이스와 상속 .... 다음과 같이 원격에서'HashMap'으로 제대로 작동하기 위해서는 위에서 언급 한 메소드를 구현하거나 오버라이드 할 필요가 없다. –
Map 인터페이스의 일부 메소드 정의는 일부 규칙을 설정합니다. 예를 들어 containsKey()는 특히 equals()를 언급합니다.Object에 대한 hashCode() 설명서는 equals()와 equals() 사이의 관계를 지정합니다. 그러나 나는 당신의 요점에 동의한다 - HashMap 문서는 hashCode() 메서드를 참조하고 HashMap의 키에 대한 사용/요구 사항을 문서화해야한다. –
또한 클래스는 '불변'이어야합니다. – Sadegh