Получается, это дублирующие друг друга вещи. Может, есть какие-то реальные различия?
Ответ
Comparator и Comparable - это оба интерфейсы
Коллекция (ну хорошо, объект) является Comparable, когда объект может быть как то сравнен с другим объектом.
Comparator, в отличие от этого — это способ сравнения объектов.
Пример: школьники на уроке физкультуры, физрук говорит: строиться по росту! - ученики быстренько сравнивают свои росты и строятся - кто выше вперед, кто ниже в хвост строя - это пример реализации Comparable, где в качестве compareTo(сосед) используется рост учеников.
Второй пример: те же школьники. Директор дает задание учителю математики сравнить учеников по успеваемости. Математичка берет журнал и сравнивает учеников по успеваемости - здесь работает compare(ученик1, ученик2) - Comparator'ом выступает математичка. Аналогично компаратором может выступить русичка или трудовик.
Комментариев нет:
Отправить комментарий