Для сортировки использован метод пузырька простейший. Перед проверкой все лишние выводы убираю.
for (int i=listStr.size()-1; i>0; i--){
            for (int j=0; j<i; j++) {
                if (isGreaterThan(listStr.get(j), listStr.get(j+1))) {
                    String tmp = listStr.get(j);
                    listStr.set(j, listStr.get(j+1));
                    listStr.set(j+1, tmp);
                }
            }
        }
Вот пример вывода программы только для слов на двух языках: Массив строковых переменных из изначального массива без сортировки: [ап , апываыва ываыва, sfsdf, fdadf, gfsgafd, , fdsafa, faaaada] Массив чисел из изначального массива без сортировки: [] Стрковый массив после сортировки: [ , faaaada, fdadf, fdsafa, gfsgafd, sfsdf, ап , апываыва ываыва] Итоговый вывод: faaaada fdadf fdsafa gfsgafd sfsdf ап апываыва ываыва