У меня есть ArrayList следующимСортировка текста с некоторыми правилами
100 AAA 500-1 Lorem Ipsum
100 BBB 500-2 Lorem Ipsum
101 AAA 500-1 Lorem Ipsum
101 AAA 500-2 Lorem Ipsum
100 BBB 500-3 Lorem Ipsum
Я хочу, чтобы быть отсортирован в
101 AAA 500-1 Lorem Ipsum
101 AAA 500-2 Lorem Ipsum
100 AAA 500-1 Lorem Ipsum
100 BBB 500-2 Lorem Ipsum
100 BBB 500-3 Lorem Ipsum
Во-первых, по убыванию по номеру (101, 100).
Во-вторых, восходящий по трехбуквенному слову (AAA, BBB).
В-третьих, в порядке возрастания третьей колонке (500-1, 500-2, 500-3)
я могу разделить каждый элемент пространством и получить отдельные слова и сортировки. Но может ли кто-нибудь помочь мне любым другим способом или известным алгоритмом? Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
Заранее спасибо.
Я не разработчик Java, но должен быть какой-то «своего рода» функциональность в вашем объекте, который вы, вероятно, может переопределить сортировку по нескольким условиям ... –
Там нет никакого конкретного алгоритма «это». Любая сортировка в конечном итоге практически сводится к быстрой сортировке, пузырьку или одному из других общепринятых топовых алгоритмов. Все они зависят от конкретной функции «сравнения», хотя и ответственны за указание разницы между двумя заданными значениями. Все, что вам нужно сделать, это переопределить это. –
Вы можете создать Объект для каждой строки и сделать его реализацией 'Comparable' и определить сортировку в методе' compareTo' (или использовать «Компаратор», как предлагает Dworza) –