Junior — Middle
W jakim wzorcu projektowym używa się klasy Comparator do porównywania obiektów?
sobes.tech AI
Odpowiedź od AI
Klasa Comparator w Javie jest stosowana w wzorcu projektowym Strategia.
Comparator implementuje interfejs, który określa strategię porównywania obiektów. Pozwala to na zmianę metody porównania bez modyfikacji samych klas obiektów.
Na przykład, jeśli masz listę obiektów i chcesz je sortować według różnych kryteriów, możesz utworzyć różne implementacje Comparator i przekazać je do metod sortowania:
List<Person> people = ...;
// Sortowanie według imienia
Comparator<Person> byName = (p1, p2) -> p1.getName().compareTo(p2.getName());
// Sortowanie według wieku
Comparator<Person> byAge = Comparator.comparingInt(Person::getAge);
Collections.sort(people, byName);
Collections.sort(people, byAge);
W ten sposób, Comparator pozwala na elastyczne zmienianie algorytmu porównania, co odpowiada wzorcowi Strategia.