2012-04-11 5 views
0

PriorityQueue가 LIFO 구조 인 것처럼 보입니다 (모든 요소가 동일한 우선 순위를 갖는 경우), 맞습니까? 문서에서PriorityQueue poll

public E poll() { 
    if (size == 0) 
     return null; 
    modCount++; 

    E result = (E) queue[1]; 
    queue[1] = queue[size]; 
    queue[size--] = null; // Drop extra ref to prevent memory leak 
    if (size > 1) 
     fixDown(1); 

    return result; 
} 
+0

무엇이 당신의 질문입니까? – st0le

답변

0

: 우선 순위 heap에 근거

하는, 무제한의 우선 도큐입니다. 우선도 큐의 요소는, 자연 순서 부에 따라, 또는 큐 생성시에 제공되는 Comparator에 의해, 사용되는 생성자에 따라 순서 붙일 수 있고 있습니다. 우선 순위 큐는 null 요소를 허용하지 않습니다. 자연 순서 부에 의존하는 우선도 큐는 비교 불가능한 오브젝트의 삽입도 허가하지 않기 때문에 ClassCastException가 발생합니다.

이 대기열의 헤드는 지정된 순서와 관련하여 가장 작은 요소입니다. 여러 요소가 최소값으로 묶여 있다면 머리는 해당 요소 중 하나입니다. 관계는 임의로 끊어집니다. 대기열 검색 작업 poll, remove, peek 및 요소는 대기열의 헤드에서 요소에 액세스합니다.

http://docs.oracle.com/javase/6/docs/api/java/util/PriorityQueue.html

는 기본적으로, 그 요소의 자연 순서입니다, 기본적으로 항상 "우선 순위"가있다.

+0

이 줄을 설명하는 방법 –

+0

대기열 [1] = 대기열 [크기]를 설명하는 방법? 마지막 요소를 머리 위치로 가져옵니다. –

+0

특정 질문을하기 위해 질문을 업데이트하는 것이 더 쉽습니다. – pcalcao

1

Javadoc의 '넥타이가 임의로 손상되었습니다.'라는 문구는 질문에 대한 대답이 '아니오'라는 것을 의미합니다.