У меня есть программа, которая берет слово и словарь текстовых файлов и ищет словарь для комбинаций слов, которые равны (являются анаграммами) данного слова.Сортировка arraylist строковых массивов Java
В итоге я получаю массив Arraylist String, каждый массив - это решение, содержащее слова, которые он использовал, и Arraylist - это все решения.
Я тогда перебрать ArrayList и сортировать массивы:
List<String> list = Arrays.asList(array);
list.sort(Comparator.comparing(String::length).reversed().thenComparing(String::compareTo));
который сортирует первый по длине слова (по убыванию), а затем использует алфавитный в качестве галстука выключателя для равных слов длины.
я теперь отдельные массивы сортируются, но я пытаюсь отсортировать их в ArrayList по определенным правилам:
- по возрастанию количества слов
- для массивов, которые содержат одинаковое количество слов, и все слова имеют одинаковую длину, массивы отсортированы в алфавитном порядке.
- ровное количество слов, но различный длина: самый длинный неравномерность сначала. Например, если длина [0] == b [0], но b [1] длина> a [1] длина, b - первая.
Они уже хранятся по возрастанию числа слов, так как сначала используются одно слововые решения, затем 2 слова и т. Д., Которые добавляются к арраисту.
Теперь, когда массивы в порядке убывания длины слова тоже после сортировки, я думаю, что для достижения вышеуказанного должен быть простой компаратор, но я изо всех сил стараюсь это сделать.