이름, 나이, 주소, 전화 번호 및 이메일과 같은 간단한 속성을 가진 Person
클래스가 있다고 가정합니다.자바 객체의 동등 함
Person
개의 각 개체가 포함 된 Sets
개의 묶음이 있습니다.
동적으로 각 세트에 대해 Set
특정 동등성을 정의하여 중복을 우아하게 제거하고자합니다.
인스턴스의 경우 : 한 세트는 전화를 기준으로 중복 인물을 제거하고 다른 세트는 이메일로 중복 인물을 제거하기를 원합니다.
내가 알고있는 유일한 방법은 하위 클래스 Person
에 여러 번 적용하고 내 요구 사항을 기반으로 equals를 재정의하는 것이지만 클래스 수가 폭발적으로 증가 할 수 있습니다.
Comparators
의 경우 허용됩니다. 같은 객체에 대해 익명의 비교기를 원하는만큼 정의 할 수 있습니다.
특별히 Java
에서 객체에 대한 동일성에 대한 하나의 정의 만 가질 수 있지만 여러 비교기를 정의 할 수있는 이유를 알고 싶습니다.
이 경우 가장 좋은 방법은 무엇입니까?