2017-12-19 56 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

대기열 헤드는 null이어야합니다. –

+0

답변 해 주셔서 감사합니다. 큐의 헤드가 null 인 유일한 시나리오가있을 수 있습니다. 그 일이 어떻게 일어 났는지 알아야합니다. –

답변

0

:

  • 교체 jobs.peek() =jobs.size과을()> 0 - 당신이 바로, 크기에 관심?
  • 내부 내용 확인 작업 대기열. Java 설명서 (https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html) - peek()을 기반으로하므로이 대기열의 헤드 인 "< ..."을 가져 오거나이 대기열이 비어 있으면 null을 반환해야합니다. " 따라서이 대기열이 비어 있거나 null 값이있는 요소가 있습니다.