JC: Как сортировать объекты в java?

Не вздумайте когда-нибудь сортировать объекты в java реализуя собственные алгоритмы сортировки. Все уже давно сделано за Вас. Вам достаточно просто знать несколько классов и методов для сортировки своих объектов.

Пример 1

Для сортировки строк и классов оберток достаточно просто использовать метод sort классов Collections (Для коллекций) или Arrays (Для массивов).

Результат.

Результат.

Класс String, Integer и т.д. могут быть отсортированы без использования интерфейса Comparator т. к. они реализуют интерфейс Camparable. И они имеют естественный порядок. Например, числа могут идти по порядку, а строки в алфавитном порядке.

Пример 2

Но что делать, если мы создали свои классы и теперь хотим их сортировать. Для этого нужно либо чтобы наш класс реализовывал интерфейс Comparable или, что более гибкий подход, мы должны реализовать интерфейс Comparator, но в отдельном классе.

Например, мы создали класс Person и теперь хотим его объекты сортировать по имени и по возрасту.

Затем, для каждого поля (по которому хотим сортировать) класса Person реализуем интерфейс Comparator. В которых описываем логику того, как мы хотим определять, какой из объектов больше, меньше или равны.

Если o1 больше, чем o2, то по договоренности должны вернуть положительное число. Если меньше, то отрицательное. Если равны, то 0. Теперь мы можем создавая объекты этих компараторов и их использовать для сортировки так как мы хотим.

Результат. Первое это сортировка по возрасту, а второе по имени.

Это знание Вы можете применить на практике в этом задании.
Задание 1.

Добавить комментарий

Ваш e-mail не будет опубликован.

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">