私はJavaを初めて使用しており、カスタムコンパレータを使用して優先度キューを実装しようとしています。私は文章をキューに入れて、最高スコアになるように削除しておきたい。Java PriorityQueueとコンパレータが正しく注文されない
私が持っているコンパレータクラスの:私はそのようにのような文章をプリントアウト
public class SentenceScoreComparator implements Comparator<Sentence> {
@Override
public int compare(Sentence o1, Sentence o2) {
if (o2.getScore() > o1.getScore()) return -1;
//fixed typo
if (o2.getScore() < o1.getScore()) return 1;
return 0;
}
}
:
PriorityQueue<Sentence> allSentences = new PriorityQueue<Sentence>(new SentenceScoreComparator());
//add sentences
for(Sentence s :allSentences){
System.out.println(s.getScore());
}
しかし、彼らは私がいることを確認順序
0.34432960587450223
0.47885099912108975
0.10991840331015199
0.36222267254836954
0.05164923572003221
0.5366117828694823
0.3891453014131773
0.0961512261934429
0.5566040852233918
0.5079687049927742
0.7628021620154812
0.6023121606121791
0.25695632228681914
0.15701049878801304
0.1260031244674359
0.36516025683986736
0.3846995962155155
ではありませんキューは正しいコンパレータ方式でコンパレータを使用しています。誰かが私が逃していることを説明することができます
ありがとうございました。どのように私はそれを逃したのか分からない –