У меня есть список объектов, которые мне нужно отсортировать по полю, скажем, Оценка. Недолго думая, я написал новый класс, реализующий Comparator, который выполняет поставленную задачу и работает.
Теперь, оглядываясь назад, я задаюсь вопросом, стоит ли мне вместо этого использовать мой класс для реализации Comparable вместо создания нового класса, реализующего Comparator. Оценка — единственное поле, по которому будут упорядочиваться объекты.
Что я сделал приемлемо для практики?
Правильный ли подход: «Сначала класс должен реализовать Comparable (для естественного упорядочения), а если требуется альтернативное сравнение полей, то создайте новый класс, который реализует Comparator"?
Если (2) выше верно, то означает ли это, что следует реализовывать Comparator только после того, как класс реализует Comparable? (Предполагая, что я владею исходным классом).
У меня есть список объектов, которые мне нужно отсортировать по полю, скажем, Оценка. Недолго думая, я написал новый класс, реализующий Comparator, который выполняет поставленную задачу и работает.
Теперь, оглядываясь назад, я задаюсь вопросом, стоит ли мне вместо этого использовать мой класс для реализации Comparable вместо создания нового класса, реализующего Comparator. Оценка — единственное поле, по которому будут упорядочиваться объекты.
[list] [*]Что я сделал приемлемо для практики? [*]Правильный ли подход: «Сначала класс должен реализовать Comparable (для естественного упорядочения), а если требуется альтернативное сравнение полей, то создайте новый класс, который реализует Comparator"? [*]Если (2) выше верно, то означает ли это, что следует реализовывать Comparator только после того, как класс реализует Comparable? (Предполагая, что я владею исходным классом). [/list]
Я написал приведенный ниже программный код, в который добавляю объекты класса Student3, которые реализуют Comparable to TreeSet. Также я добавил Компаратор в TreeSet. Вызывается ли сравнение с помощью Comparable. или вызывается только сравнение...
Я написал приведенный ниже программный код, в который добавляю объекты класса Student3, которые реализуют Comparable to TreeSet. Также я добавил Компаратор в TreeSet. Вызывается ли сравнение с помощью Comparable. или вызывается только сравнение...
Я написал приведенный ниже программный код, в который добавляю объекты класса Student3, которые реализуют Comparable to TreeSet. Также я добавил Компаратор в TreeSet. Вызывается ли сравнение с помощью Comparable. или вызывается только сравнение...
Суть довольно проста:
У меня есть класс-контейнер, который содержит Map с элементами, реализующими интерфейс Compable.
При этом сам класс-контейнер также реализует интерфейс Compable. Выглядит это так:
public class Unit