API의 대기열 설명 :
공개 인터페이스 큐 <e>는 수집 <e>을 확장합니다
수집 요소를 처리하기 전에 요소를 보존하는 데 사용됩니다. 기본 수집 작업 외에도 큐는 다른 삽입, 추출 및 검사 작업을 제공합니다. 각 방법에는 두 가지 형태가 있습니다. 하나는 이상을 던지고 (작업이 실패 할 때) 다른 하나는 특수 값 (작업에 따라 널 또는 거짓)을 반환합니다. 후자의 삽입 작업은 용량 제한을 전문으로하는 큐를 위해 설계되었습니다.
대기열은 일반적으로 FIFO 형태로 각 요소를 정렬하는 것입니다 (첫 번째). 그러나 우선 순위 대기열과 Lifo 대기열 (또는 스택) 예외는 비교기 또는 요소의 자연 순서를 기반으로 요소를 분류하고 후자는 Lifo에 따라 요소를 분류합니다 (Follow -UP First). 어떤 분류 방법이 사용되는지에 관계없이 큐의 헤드는 () 또는 poll ()을 통화하여 제거 된 요소입니다. FIFO 대기열에서는 모든 새로운 요소가 큐 끝에 삽입됩니다. 다른 유형의 대기열은 다른 요소 배치 규칙을 사용할 수 있습니다. 각 대기열 구현은 주문 속성을 지정해야합니다.
가능하면 제안 방법을 요소에 삽입 할 수 있습니다. 그렇지 않으면 False를 반환합니다. 이것은 collection.add 방법과 다릅니다. 제안 방법 설계는 고정 대기열 (경계)과 같은 비정상적인 상황이 아닌 정상 고장에 사용됩니다.
제거 () 및 poll () 메소드를 제거하고 큐 헤드로 되돌릴 수 있습니다. 결국 큐에서 제거되는 요소는 큐 분류 전략의 기능 이며이 전략은 다양한 구현에서 다릅니다. 제거 () 및 poll () 메소드는 큐가 비어있을 때만 다릅니다. remove () 메소드가 예외를 던지고 poll () 메소드가 NULL을 반환합니다.
요소 () 및 peek () 반환하지만 큐 헤드는 제거되지 않았습니다.
큐 인터페이스는 큐 차단 방법을 정의하지 않으며 이는 동시 프로그래밍에서 매우 일반적입니다. Blockingqueue 인터페이스는 대기 요소의 모양에서 사용 가능한 공간의 방법을 정의하거나 대기열을 대기 하여이 인터페이스를 확장합니다.
일부 구현 (예 : LinkedList)은 NULL 삽입을 금지 할 수는 없지만 큐 구현은 일반적으로 널 요소를 삽입 할 수 없습니다. NULL의 구현에서도 NULL은 큐에 삽입되어서는 안됩니다. NULL은 폴링 방법의 특수 반환 값으로 사용되므로 대기열에 요소가 포함되어 있지 않음을 나타냅니다.
큐는 요소 기반 버전의 동등한 버전과 해시 코드 메소드를 구현하지만 동일한 요소이지만 다른 정렬 속성을 가진 대기열의 경우 동일한 특성이 항상 같은 특성이 아닙니다 .
Java에서 큐를 사용하여 LinkedList Collection을 시뮬레이션하십시오.
LinkedList Collection을 사용하고 API 집단 시뮬레이션 큐 작업을 사용하는 방법
대기줄
void addlast (e e);
대기줄
e removeFirst (); // 목록의 첫 번째 요소를 제거하고 반환합니다.
비어 있으십시오
부울 isempty ();
예를 들어 코드
Corejavaone; import java.util.linkedList; public void enqueue (int data) {this.queue.addlast (data);} public int dequeue ()가 nocomentException {return this.queue.remove first ();} public static void main (string [] args) {Simulatingqueue q. = 새로운 시뮬레이션 () q.enqueue (2); println (data);}}}