在String的ArrayList上使用选择排序

时间:2011-05-02 00:41:46

标签: java sorting

我有一个程序,它计算从txt文件中获取的单词的频率,并将它们存储在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是一个具有String变量“word”的类。任何提示将不胜感激:))

1 个答案:

答案 0 :(得分:2)

为什么不使用这个

public int compareTo(Word w) {
    return this.word.compareTo(w.word);
}