Встречается на собеседованиях • сегодня
В чем разница между Comparable и Comparator в Java
`Comparable` и `Comparator` — оба интерфейса для сравнения объектов, но с разной логикой:
1. **Comparable**
- Встроен в класс (`implements Comparable`).
- Определяет естественный порядок сортировки через метод `compareTo()`.
- Пример:
```java
class Person implements Comparable {
String name;
public int compareTo(Person other) {
return this.name.compareTo(other.name);
}
}
```
2. **Comparator**
- Внешний интерфейс, не требует изменения класса.
- Позволяет создавать множественные стратегии сортировки через метод `compare()`.
- Пример:
```java
Comparator byAge = (p1, p2) -> Integer.compare(p1.age, p2.age);
Collections.sort(people, byAge);
```
**Итог:**
- `Comparable` — для единственного "естественного" порядка (например, строки по алфавиту).
- `Comparator` — для гибких сортировок (например, сортировка пользователей по возрасту, зарплате и т.д.).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы