2017-12-19 36 views
1

androidでPriorityQueue.size()が0のときにPriorityQueue.peek()がnullを返したときに問題が発生しました。PriorityQueue.size()> 0のときにPriorityQueue.peek()がnullを返す理由

enter image description here

私は、これは、デバイスの問題である可能性がありだと思います。 誰かが何かを念頭に置いていますか?

+1

「JavaDoc」(https://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html#peek())を実行すると、 'peek'は' head要素である場合、またはキューが空の場合はnullです。あなたの 'push'メソッドが' null'をチェックするのが分かりますが、 'null'をキューに入れる可能性は他にありませんか? head要素のログ出力、またはデバッグできますか?そして、人々がそれを試すことができるように、画像の代わりにエラーを生成する実行可能な最小限の例を投稿してください。 –

+0

キューの先頭はヌルでなければなりません –

+0

回答ありがとうございます。唯一のシナリオは、キューの先頭がヌルである可能性があります。それがどう起こったかを知る必要があります。 –

答えて

0

私は2つの次のソリューションを参照してください!

  • は(jobs.peekを交換してください)= nullをjobs.size()> 0で - あなたは右、サイズに興味?
  • 内部のチェックジョブキュー。 Javaのドキュメント(https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html) - peek()に基づいているため、 "< ...>このキューの先頭を取得する必要があります。このキューが空の場合はnullを返します。"したがって、このキューは空であるか、値がnullの要素が内部にあります。
関連する問題