code.google.com/p/guava-libraries/issues/detail?id=576
имеетComparator<T>
для обеспечения сравнения объектов, внешних по отношению к самому классу, для обеспечения нескольких / альтернативных методов выполненияупорядоченный сравнения.
Но единственный стандартный способ сделатьнеупорядоченный сравнения переопределитьequals()
в класс.
Что мне делать, если я хочу предоставить несколько / альтернативных неупорядоченных сравнений, внешних по отношению к классу? (Очевидный вариант использования - разбиение коллекции на классы эквивалентности на основе определенных свойств.)
Предполагая, что конечное использование предназначено для неупорядоченной проверки (например, не для сортировки или индексации), можно ли реализоватьComparator<T>
это просто проверяет равенство, возвращая 0, если два объекта равны, и значение! = 0, если два объекта неравны? (нота: единственная причина, по которой я не использую это решение, заключается в том, что технически оно может нарушить контракт наComparator
не предоставляя отношения, которое удовлетворяет транзитивности и симметрии.)
Кажется, должно было бытьEqualsComparator<T>
стандартный класс или что-то.
(Гуава обрабатывает что-нибудь подобное?)