カスタムのコンパレータを作成して、ArrayList of Stringsを並べ替えました。私はデバッガを介してそれを実行し、比較し、値を正しく返すのを見ました。しかし、私の配列はソートされていません。私がJava & Androidを初めて使用して以来、何か他のことが起こっている可能性があります。カスタムコンパレータを使用したコレクションの並べ替えが機能しない
それを数時間見た後、私は何かを理解することができません。私はこのサイトを使って多くの他の質問に答えています。
Collections.sort(allWords, new Comparator<String>(){
public int compare(String o1, String o2) {
scoreWord sc1 = new scoreWord((String)o1);
scoreWord sc2 = new scoreWord((String)o2);
int i1 = sc1.getScore();
int i2 = sc2.getScore();
if (i1 > i2)
return 1;
return 0;
}
public boolean equals(String o1, String o2) {
scoreWord sc1 = new scoreWord((String)o1);
scoreWord sc2 = new scoreWord((String)o2);
int i1 = sc1.getScore();
int i2 = sc2.getScore();
if (i1 == i2)
return true;
return false;
}
});
どのような理由で 'equals(String o1、String o2)'メソッドが必要ですか? – home
'compare(Object o1、Object o2)'と 'equals(Object o1、Object o2) 'を試してください –