동일한 클래스의 객체를 저장하는 여러 세트가 있지만 각각에 대해 다른 신원 함수를 지정하려고합니다 (즉, Ax == Bx, 다른 A == B 인 경우 Ay == By).동일한 객체에 대해 다중 해시 함수 정의
현재 각각에 대해 서로 다른 Comparator가 정의 된 TreeSets를 사용합니다. HashSet으로 전환하려면 어떻게 동일한 작업을 수행 할 수 있는지 궁금합니다. Java는 정렬 된/트리 기반 콜렉션에 대한 비교기와 동일한 방식으로 별도의 해시 함수를 전달할 수 없습니다. 내가 할 수있는 유일한 방법은 다른 래퍼 클래스를 만들고 각 HashSet의 요소에 대해 hashCode() 메서드를 구현하는 것입니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
하위 클래스를 개인 내부 클래스로 구현하고 사용자가 원하는 동등 의미를 얻기 위해 팩토리 메서드를 제공 할 수 있습니다. 이것은 선택을 완전히 캡슐화합니다 – Andrew