Возникла идея закинуть все слова в ArrayList и отсортировать с использованием компаратора по последней и первой буквам слов. Но моя реализация даже близко не сортирует как надо.
public static StringBuilder getLine(String... words) {
StringBuilder result = new StringBuilder();
LetterComparator comp = new LetterComparator();
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, words);
list.sort(comp);
for (String word : list) {
result.append(word).append(" ");
}
return result;
}
public static class LetterComparator implements Comparator<String> {
@Override
public int compare(String o1, String o2) {
int length1 = o1.length();
Character lastLetter = o1.charAt(length1 - 1);
Character firstLetter = o2.charAt(0);
return lastLetter.compareTo(firstLetter);
}
}
Может кто подскажет как это можно реализовать (если вообще можно) или лучше бросить эту затею?