我有自己的班级word
和symbol
. Symbol
是 char 的一些包装器。Word
是一个 ArrayList<Symbol>
。我需要ArrayList<Word>
按一些出现的次数symbol
或出现次数是否相同 - 按字母顺序排序。怎么做?我想我需要覆盖compareto
类的方法,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;
}
}
如何按字母顺序比较两个数组列表?