Встречается на собеседованиях • сегодня
В чем разница между Comparator и Comparable
`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**:
- Отдельный интерфейс (`Comparator`), реализуется в другом классе.
- Позволяет создавать множество различных правил сортировки через метод `compare()`.
- Пример:
```java
Comparator ageComparator = (p1, p2) -> p1.getAge() - p2.getAge();
```
**Когда использовать**:
- `Comparable` — если у класса есть "естественный" порядок (например, String, Integer).
- `Comparator` — для гибкой сортировки (разные критерии) или если нельзя изменить исходный класс.

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