У меня есть программа, которая считает частоты слов, взятых из текстового файла, и они хранятся в ArrayList. Я крайне незнаком с использованием сортировки выбора, но это тип сортировки, который меня просят использовать. Я посмотрел несколько вариантов выбора, но у меня что-то не так.
Это мой настоящий вид.
private void sort() {
for (int i = 0; i < wordArray.size() - 1; i++) {
for (int j = i + 1; j < wordArray.size(); j++) {
if (wordArray.get(i).compareTo(wordArray.get(j)) == 1) {
Word temp = wordArray.get(i);
wordArray.set(i, wordArray.get(j));
wordArray.set(j, temp);
}
}
}
}
Это мое сравнение строк (я почти уверен, что здесь есть логическая ошибка).
public int compareTo(Word w) {
for (int i = 0; i < this.word.length() - 1; i++) {
if (i <= w.word.length() - 1) {
if (this.word.charAt(i) < w.word.charAt(i)) {
return -1;
} else if (this.word.charAt(i) > w.word.charAt(i)){
return 1;
}
}
}
return -1;
}
Word - это класс, который имеет строковую переменную "word". Любые советы будут с благодарностью:)