0
我有我自己的類word
和symbol
。 Symbol
是char的一些包裝。 Word
是ArrayList<Symbol>
。 我需要根據symbol
的出現次數或發生次數相同 - 按字母順序排序ArrayList<Word>
。 如何做到這一點?我想我需要覆蓋類的Word
方法,然後使用Collections.sort
。 但我不知道如何按字母順序比較兩個words
(兩個陣列列表)。按字母順序比較字符的數組列表
這裏是symbol
類
public class Symbol implements Comparable<Symbol> {
private char symbol;
....
@Override
public int compareTo(Symbol o) {
return Character.valueOf(symbol).compareTo(Character.valueOf(o.getSymbol()));
}
}
這裏的一部分是word
類的部分
public class Word implements Comparable<Word> {
private ArrayList<Symbol> word;
private Symbol comparable_symbol;
public int count(){ //number of occurrences
int count = 0;
for(Symbol s:word){
if (s == comparable_symbol) count++;
}
return count;
}
@Override
public int compareTo(Word o) {
int left = this.count();
int right = o.count();
if (left == right){
//compare alphabetically
}
else return (left > right)?1:-1;
}
}
如何按字母順序比較兩個的ArrayList?
只需比較每個字符值從左到右?如果一個單詞比之前的所有字符匹配時先於另一個單詞先行。當然,這將使用Unicode 16位代碼點作爲字母表,除非您進行其他更改... – 2013-05-07 22:17:48
一個非常糟糕的竅門是使用StringBuilder重新生成一個String實例並比較這些字符串,但如果這是你可能會得到一個指定的作業:) – 2013-05-07 22:20:00
哦!我懂了。謝謝! – lapots 2013-05-07 22:26:36