我有一个程序,它计算从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”的类。任何提示将不胜感激:))
答案 0 :(得分:2)
为什么不使用这个
public int compareTo(Word w) {
return this.word.compareTo(w.word);
}