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