Встречается на собеседованиях • сегодня

Как Comparator и Comparable связаны с коллекциями

Оба интерфейса используются для сортировки коллекций: 1. **Comparable** (`compareTo(T o)`) - естественный порядок сортировки. Класс реализует его, если объекты имеют "естественный" способ сравнения (например, String по алфавиту, числа по возрастанию). Используется в `Collections.sort()` без компаратора. ```java class Person implements Comparable { @Override public int compareTo(Person o) { return this.name.compareTo(o.name); } } ``` 2. **Comparator** (`compare(T o1, T o2)`) - внешний порядок. Позволяет задать разные способы сортировки для одного класса. Передается как параметр в `Collections.sort()` или `TreeSet` конструктор. ```java Comparator ageComparator = (p1, p2) -> p1.getAge() - p2.getAge(); Collections.sort(people, ageComparator); ``` Ключевое отличие: Comparable - внутренняя логика сравнения, Comparator - гибкие внешние правила. Оба активно используются в коллекциях для управления порядком элементов.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы