Предположим, у меня есть класс Person
с простыми атрибутами как имя, возраст, адрес, телефон и адрес электронной почты.Динамическое равенство для java-объектов
У меня есть группа Sets
, каждая из которых содержит Person
объектов.
Я хотел бы динамически определить Set
конкретное равенство для каждого набора, чтобы элегантно удалить дубликаты.
Для экземпляра: Я хочу, чтобы один набор удалял дубликатов лиц по телефону, а другой - для удаления дубликатов объектов с помощью электронной почты.
Единственный способ, о котором я знаю, заключается в подклассе Person
многократно и переопределить равные на основе моего требования, но это приведет к взрыву в количестве классов.
Это разрешено в случае Comparators
. Я могу определить столько анонимных компараторов для того же самого объекта, который мне нужен/нужен.
В частности, я хочу понять, почему в Java
мы можем иметь только одно определение для равенства для объекта, но можем определить несколько компараторов?
Что было бы лучшим способом в этом случае?