2011-01-20 8 views
0

これは私の最初の投稿ですので、ここで質問を定式化することについて正しい方向で私を指差してください。Java PriorityQueueはポーリング予定オブジェクトではありません

私の問題はjava.util.PriorityQueueです。

私は初期化するキューを持っています。

私のキュー内の何か、またはmyComparableがどのように実装されているのかは問題ではないと思います。

私は予期しない出力を得る:リスト内のオブジェクトのために

prioritizedObject = prioritized.poll(); 

for(someObject otherObject : prioritized) 
{ 
    System.out.println(comp.compare(prioritizedObject, otherObject)); 
    System.out.println(comp.equals(prioritizedObject, otherObject)); 

} 

この版画:

は、これはどのようにすることができますか?どのようにして、コンパイラImがキュー内の別のオブジェクトが小さいと言っている間、オブジェクトをキューからpoll()することができますか?

+0

これはキューとは関係ないと私は考えています。それは正しい方法ではないあなたのComparableメソッドです。キューはすべてのオブジェクトのみを取得します。唯一のものがあるので、そうでないようです。 'myComparable'クラスでユニットテストをしましたか? – Marnix

+0

もっとコードを見ることなく本当に話すことは不可能です。これをデモストする[SSCCE](http://sscce.org)を投稿できますか? –

+0

"私のキューに何があるのか​​、myComparableがどのように実装されているのかは問題ではないと思います。 - あなたのコードがなぜ機能していないのかわからないときはどうすればいいですか?本当に素晴らしい。 –

答えて

1

他のすべてが(なし同時押し、テスト間違っを取得していない)権利である場合には、私は2つの理由を想像することができます:オブジェクトはその順序(禁断)

  • に影響を与えるように変更

    • をコンパレータが間違っている(推移的ではない)
  • +0

    本当に短いコードサンプルに基づいて、あなたはここにいます - 私はmaartinusの2番目のオプションがおそらくアップしていると推測しています - コンパレータを投稿してください。 – lscoughlin

    +0

    ええ、私は、A Hanna

    関連する問題