Страницы

Поиск по вопросам

пятница, 22 марта 2019 г.

В чем разница между Comparable и Comparator?

Получается, это дублирующие друг друга вещи. Может, есть какие-то реальные различия?


Ответ

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

Комментариев нет:

Отправить комментарий