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