JavaTM Platform
Standard Ed. 6

java.util
인터페이스 Queue<E>

형태 파라미터:
E - 컬렉션내에 존재하는 요소의 형태
모든 슈퍼 인터페이스:
Collection <E>, Iterable <E>
기존의 서브 인터페이스의 일람:
BlockingDeque <E>, BlockingQueue <E>, Deque <E>
기존의 구현 클래스의 일람:
AbstractQueue , ArrayBlockingQueue , ArrayDeque , ConcurrentLinkedQueue , DelayQueue , LinkedBlockingDeque , LinkedBlockingQueue , LinkedList , PriorityBlockingQueue , PriorityQueue , SynchronousQueue


public interface Queue<E>
extends Collection <E>

처리전에 요소를 보관 유지하는 목적으로 설계된 컬렉션. 큐에 의해, 기본적인 Collection 오퍼레이션에 가세해 추가의 삽입, 추출, 및 검사 오퍼레이션이 제공됩니다. 이러한 메소드에는 각각, 2 개의 형식이 있습니다. 1 개(살)은 오퍼레이션 실패시에 예외를 throw 해, 이제(벌써) 1 개(살)은 특수한 값 (오퍼레이션에 응해 null 또는 false)을 돌려줍니다. 후자의 형식의 삽입 오퍼레이션은, 용량의 제한된 Queue 구현용으로서 특별히 설계된 것입니다만, 대부분의 구현에서는 삽입 오퍼레이션은 실패할 수 없습니다.

예외를 throw 한다 특수한 값을 돌려준다
삽입 add(e) offer(e)
삭제 remove() poll()
검사 element() peek()

반드시 그 필요는 없습니다만, 일반적으로, 큐는 FIFO (선입선출)로 요소의 순서부를 실시합니다. 우선도 큐는 예외로, 지정된 Comparator (요소의 자연 순서 붙이고), 및 LIFO 큐 (또는 스택)에 따라 요소의 순서부를 실시합니다. LIFO 큐에서는, LIFO (후입선출)로 요소가 순서 붙이고 됩니다. 사용하는 순서부에 관계없이, 큐의 「선두」는 remove() 또는 poll() 의 호출에 의해 삭제되는 요소입니다. FIFO 큐에서는, 모든 신규 요소는 큐의 「말미」에 삽입됩니다. 다른 종류의 큐에서는, 사용되는 배치 규칙이 다른 경우가 있습니다. 어떠한 Queue 의 구현에서도, 순서부의 프로퍼티을 지정할 필요가 있습니다.

offer 메소드는, 가능하면 요소를 삽입해, 가능하지 않으면 false 를 돌려줍니다. 이것이, 체크되지 않는 예외를 throw 하는 경우에게만 요소의 추가에 실패하는 Collection.add 메소드와 다른 점입니다. 고정 용량 (바운드) 큐가 원인으로 발생하는 경우와 같이,offer 메소드는, 실패가 예외적은 아니고 일반적으로인 경우에 사용하는 목적으로 설계되고 있습니다.

remove()poll() 메소드는, 큐의 선두를 삭제 및 돌려줍니다. 정확하게 어느 요소를 큐로부터 삭제할까는, 큐의 순서부 정책의 역할이며, 구현에 의해 다릅니다. remove()poll() 메소드는, 큐가 빈 상태(empty)인 경우의 동작만이 다릅니다. remove() 메소드는 예외를 throw 하는데 대해,poll() 메소드는 null 를 돌려줍니다.

element()peek() 메소드는 큐의 선두를 돌려줍니다만, 삭제는 실시하지 않습니다.

Queue 인터페이스는, 병행 프로그래밍에서는 일반적인 큐브 락화 메소드를 정의하지 않습니다. 이러한 메소드는, 이 인터페이스를 확장하는 BlockingQueue 인터페이스내에서 정의되어 요소가 출현할까 공간이 이용 가능하게 될 때까지 대기합니다.

LinkedList 등의 일부의 구현은 null 요소의 삽입을 허가하는데 대해, 일반적으로,Queue 구현은 null 의 삽입을 허가하지 않습니다. null 는 큐에 요소가 포함되지 않는 것을 나타내는 poll 메소드의 특수한 반환값이라고 해도 사용되기 (위해)때문에,Queuenull 를 삽입하는 조작은, 그것을 허가하는 구현이어도 실시해야 하는 것이 아닙니다.

일반적으로,Queue 구현은 요소 베이스의 메소드 equalshashCode 를 정의하지 않고 ,Object 클래스로부터 아이덴티티 베이스의 메소드를 상속합니다. 이것은, 보관 유지하는 요소가 같아도 순서부의 프로퍼티이 다른 큐의 경우, 요소 베이스의 등가성이 항상 충분히 정의되고 있다고는 말할 수 없기 때문입니다.

이 인터페이스는,Java Collections Framework 의 멤버입니다.

도입된 버젼:
1.5
관련 항목:
Collection , LinkedList , PriorityQueue , LinkedBlockingQueue , BlockingQueue , ArrayBlockingQueue , LinkedBlockingQueue , PriorityBlockingQueue

메소드의 개요
 boolean add (E  e)
          지정된 요소를, 이 큐에 용량 제한으로 위반하는 것 없이 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다.
 E element ()
          큐의 선두를 가져옵니다만, 삭제하지 않습니다.
 boolean offer (E  e)
          용량 제한으로 위반하지 않고 곧 실행할 수 있는 경우는, 지정된 요소를 이 큐에 삽입합니다.
 E peek ()
          큐의 선두를 가져옵니다만, 삭제하지 않습니다.
 E poll ()
          큐의 선두를 취득 및 삭제합니다.
 E remove ()
          큐의 선두를 취득 및 삭제합니다.
 
인터페이스 java.util. Collection 로부터 상속된 메소드
addAll , clear , contains , containsAll , equals , hashCode , isEmpty , iterator , remove , removeAll , retainAll , size , toArray , toArray
 

메소드의 상세

add

boolean add(E  e)
지정된 요소를, 이 큐에 용량 제한으로 위반하는 것 없이 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다. 성공했을 경우는 true 를 돌려주어, 사용 가능한 빈영역이 그 시점에서 존재하지 않는 경우는 IllegalStateException 를 throw 합니다.

정의:
인터페이스 Collection <E > 내의 add
파라미터:
e - 추가하는 요소
반환값:
true (Collection.add(E) 로 지정되고 있는 대로)
예외:
IllegalStateException - 용량 제한을 위해서(때문에) 요소를 그 시점에서 추가할 수 없는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 큐에 그 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 이며, 이 큐가 null 요소를 허가하지 않는 경우
IllegalArgumentException - 이 요소가 있는 특성이 원인으로, 이 큐에 이 요소를 추가할 수 없는 경우

offer

boolean offer(E  e)
용량 제한으로 위반하지 않고 곧 실행할 수 있는 경우는, 지정된 요소를 이 큐에 삽입합니다. 용량의 제한된 큐를 사용하는 경우에는 기본적으로, 요소의 삽입 실패시에 예외를 throw 할 뿐(만큼)의 add(E) 보다, 이 메소드 쪽을 사용하도록 해 주세요.

파라미터:
e - 추가하는 요소
반환값:
이 큐에 요소가 추가되었을 경우는 true, 그 이외의 경우는 false
예외:
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 큐에 그 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 이며, 이 큐가 null 요소를 허가하지 않는 경우
IllegalArgumentException - 이 요소가 있는 특성이 원인으로, 이 큐에 이 요소를 추가할 수 없는 경우

remove

E  remove()
큐의 선두를 취득 및 삭제합니다. 이 메소드는, 큐가 빈 상태(empty)의 경우에 예외를 throw 하는 점만이 poll 메소드와 다릅니다.

반환값:
큐의 선두
예외:
NoSuchElementException - 큐가 빈 상태(empty)의 경우

poll

E  poll()
큐의 선두를 취득 및 삭제합니다. 큐가 빈 상태(empty)의 경우는 null 를 돌려줍니다.

반환값:
큐의 선두. 큐가 빈 상태(empty)의 경우는 null

element

E  element()
큐의 선두를 가져옵니다만, 삭제하지 않습니다. 이 메소드는, 큐가 빈 상태(empty)의 경우에 예외를 throw 하는 점만이 peek 메소드와 다릅니다.

반환값:
큐의 선두
예외:
NoSuchElementException - 큐가 빈 상태(empty)의 경우

peek

E  peek()
큐의 선두를 가져옵니다만, 삭제하지 않습니다. 큐가 빈 상태(empty)의 경우는 null 를 돌려줍니다.

반환값:
큐의 선두. 큐가 빈 상태(empty)의 경우는 null

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.