Использование сортировки выбора в ArrayList of Strings - PullRequest
0 голосов
/ 02 мая 2011

У меня есть программа, которая считает частоты слов, взятых из текстового файла, и они хранятся в 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". Любые советы будут с благодарностью:)

1 Ответ

2 голосов
/ 02 мая 2011

Почему бы просто не использовать это

public int compareTo(Word w) {
    return this.word.compareTo(w.word);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...