0
我有一个程序计算从txt文件中获取的单词的频率,并将它们存储在ArrayList中。我对使用选择排序非常不熟悉,但它是我被要求使用的排序类型。我已经看过多种选择,但是我的排在某处。在字符串的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”的类。任何提示将不胜感激:)
这有什么问题呢?即什么是不正确的行为?你有没有尝试在调试器中逐句通过你的代码? – 2011-05-02 00:44:59
上面,增加,一个,先进的,以前,所有,因为,总而言之,和,任何,是,是。这是它现在如何发展的一个例子。该文件中有大约138个独特的单词。 – Alex 2011-05-02 00:48:44
我不认为你想要自己实施。我也相信Word.compareTo可以简单地委托给Word的String.compareTo。 – ditkin 2011-05-02 00:49:35