JavaTM Platform
Standard Ed. 6

java.util.concurrent
인터페이스 BlockingDeque<E>

형태 파라미터:
E - 컬렉션내에 존재하는 요소의 형태
모든 슈퍼 인터페이스:
BlockingQueue <E>, Collection <E>, Deque <E>, Iterable <E>, Queue <E>
기존의 구현 클래스의 일람:
LinkedBlockingDeque


public interface BlockingDeque<E>
extends BlockingQueue <E>, Deque <E>

요소의 취득시에 양단 큐가 빈 상태(empty)이 아니게 될 때까지 대기하거나 요소의 포함시에 양단 큐내에 빈 곳이 생길 때까지 대기하는 블록 조작을 추가로 지원하거나 하는 Deque 입니다.

BlockingDeque 메소드에는 4 개의 형식이 있어, 곧바로는 달성할 수 없어도 장래가 있는 시점에서 달성할 수 있을 가능성이 있는 조작을 다른 방법으로 처리합니다. 1 개째는 예외를 throw 해, 2 개째는 특수한 값 (조작에 응해 nullfalse 의 어느쪽이든)을 돌려주어, 3 개째는 조작이 정상적으로 완료할 때까지 현재의 thread를 무기한으로 블록 해, 4 개째는 처리를 중지할 때까지 지정된 제한 시간내만 블록 합니다. 이러한 메소드에 대해, 다음의 표에 정리합니다.

최초의 요소 (선두)
예외를 throw 한다 특수한 값 블록 타임 아웃
삽입 addFirst(e) offerFirst(e) putFirst(e) offerFirst(e, time, unit)
삭제 removeFirst() pollFirst() takeFirst() pollFirst(time, unit)
검사 getFirst() peekFirst() 적용외 적용외
마지막 요소 (말미)
예외를 throw 한다 특수한 값 블록 타임 아웃
삽입 addLast(e) offerLast(e) putLast(e) offerLast(e, time, unit)
삭제 removeLast() pollLast() takeLast() pollLast(time, unit)
검사 getLast() peekLast() 적용외 적용외

BlockingQueue 와 같이,BlockingDeque 는 thread 세이프이며, null 요소를 허용 하지 않습니다. 또, 용량이 제한되고 있는 일도 제한되어 있지 않은 것도 있습니다.

BlockingDeque 구현은, FIFO 의 BlockingQueue 로서 직접 사용되는 일이 있습니다. BlockingQueue 인터페이스로부터 상속된 메소드는, 다음의 겉(표)에 나타내도록(듯이) BlockingDeque 메소드와 완전한 등가입니다.

BlockingQueue 메소드 동등의 BlockingDeque 메소드
삽입
add(e) addLast(e)
offer(e) offerLast(e)
put(e) putLast(e)
offer(e, time, unit) offerLast(e, time, unit)
삭제
remove() removeFirst()
poll() pollFirst()
take() takeFirst()
poll(time, unit) pollFirst(time, unit)
검사
element() getFirst()
peek() peekFirst()

메모리 무결성 효과:다른 동시성 처리 컬렉션과 같이, 객체를 BlockingDeque 에 배치하기 전의 thread내의 액션은, 다른 thread에서의 그 요소에의 액세스 또는 BlockingDeque 로부터의 삭제에 계속되는 액션보다「전에 발생」 합니다.

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

도입된 버젼:
1.6

메소드의 개요
 boolean add (E  e)
          지정된 요소를, 이 양단 큐로 나타내지는 큐 (즉, 이 양단 큐의 말미)에, 용량 제한으로 위반하는 것 없이 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다.
 void addFirst (E  e)
          용량 제한으로 위반하는 일 없이 지정된 요소를 이 양단 큐의 선두에 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다.
 void addLast (E  e)
          용량 제한으로 위반하는 것 없이 로 지정된 요소를 이 양단 큐의 말미에 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다.
 boolean contains (Object  o)
          지정된 요소가 이 양단 큐에 포함되어 있는 경우에 true 를 돌려줍니다.
 E element ()
          이 양단 큐에 의해 나타내지는 큐의 선두 (즉, 이 양단 큐의 최초의 요소)를 가져옵니다만, 삭제하지 않습니다.
 Iterator <E > iterator ()
          이 양단 큐내의 요소를 적절한 순서로 반복 처리 하는 반복자를 돌려줍니다.
 boolean offer (E  e)
          지정된 요소를, 이 양단 큐로 나타내지는 큐 (즉, 이 양단 큐의 말미)에, 용량 제한으로 위반하는 것 없이 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다.
 boolean offer (E  e, long timeout, TimeUnit  unit)
          지정된 요소를 이 양단 큐로 나타내지는 큐 (즉, 이 양단 큐의 말미)에 삽입합니다.
 boolean offerFirst (E  e)
          용량 제한으로 위반하는 것 없이 로 지정된 요소를 이 양단 큐의 선두에 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다.
 boolean offerFirst (E  e, long timeout, TimeUnit  unit)
          지정된 요소를 이 양단 큐의 선두에 삽입합니다.
 boolean offerLast (E  e)
          용량 제한으로 위반하는 것 없이 로 지정된 요소를 이 양단 큐의 말미에 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다.
 boolean offerLast (E  e, long timeout, TimeUnit  unit)
          지정된 요소를 이 양단 큐의 말미에 삽입합니다.
 E peek ()
          이 양단 큐에 의해 나타내지는 큐의 선두 (즉, 이 양단 큐의 최초의 요소)를 가져옵니다만, 삭제하지 않습니다.
 E poll ()
          이 양단 큐에 의해 나타내지는 큐의 선두 (즉, 이 양단 큐의 최초의 요소)를 취득해 삭제합니다.
 E poll (long timeout, TimeUnit  unit)
          이 양단 큐에 의해 나타내지는 큐의 선두 (즉, 이 양단 큐의 최초의 요소)를 취득해 삭제합니다.
 E pollFirst (long timeout, TimeUnit  unit)
          이 양단 큐의 최초의 요소를 취득해 삭제합니다.
 E pollLast (long timeout, TimeUnit  unit)
          이 양단 큐의 마지막 요소를 취득해 삭제합니다.
 void push (E  e)
          이 양단 큐로 나타내지는 스택에 요소를 넣습니다.
 void put (E  e)
          지정된 요소를 이 양단 큐로 나타내지는 큐 (즉, 이 양단 큐의 말미)에 삽입합니다.
 void putFirst (E  e)
          지정된 요소를 이 양단 큐의 선두에 삽입합니다.
 void putLast (E  e)
          지정된 요소를 이 양단 큐의 말미에 삽입합니다.
 E remove ()
          이 양단 큐에 의해 나타내지는 큐의 선두 (즉, 이 양단 큐의 최초의 요소)를 취득해 삭제합니다.
 boolean remove (Object  o)
          지정된 요소의 쳐 최초로 출현한 것을, 이 양단 큐로부터 삭제합니다.
 boolean removeFirstOccurrence (Object  o)
          지정된 요소의 쳐 최초로 출현한 것을, 이 양단 큐로부터 삭제합니다.
 boolean removeLastOccurrence (Object  o)
          지정된 요소의 쳐 마지막에 출현한 것을, 이 양단 큐로부터 삭제합니다.
 int size ()
          이 양단 큐내의 요소의 수를 돌려줍니다.
 E take ()
          이 양단 큐에 의해 나타내지는 큐의 선두 (즉, 이 양단 큐의 최초의 요소)를 취득해 삭제합니다.
 E takeFirst ()
          이 양단 큐의 최초의 요소를 취득해 삭제합니다.
 E takeLast ()
          이 양단 큐의 마지막 요소를 취득해 삭제합니다.
 
인터페이스 java.util.concurrent. BlockingQueue 로부터 상속된 메소드
drainTo , drainTo , remainingCapacity
 
인터페이스 java.util. Deque 로부터 상속된 메소드
descendingIterator , getFirst , getLast , peekFirst , peekLast , pollFirst , pollLast , pop , removeFirst , removeLast
 
인터페이스 java.util. Collection 로부터 상속된 메소드
addAll , clear , containsAll , equals , hashCode , isEmpty , removeAll , retainAll , toArray , toArray
 

메소드의 상세

addFirst

void addFirst(E  e)
용량 제한으로 위반하는 일 없이 지정된 요소를 이 양단 큐의 선두에 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다. 사용 가능한 빈영역이 그 시점에서 존재하지 않는 경우는 IllegalStateException 를 throw 합니다. 용량 제한이 있는 양단 큐를 사용하는 경우, 일반적으로은 offerFirst 를 사용하는 것을 추천합니다.

정의:
인터페이스 Deque <E > 내의 addFirst
파라미터:
e - 추가하는 요소
예외:
IllegalStateException - 용량 제한이 원인으로 이 시점에서 요소를 추가할 수 없는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

addLast

void addLast(E  e)
용량 제한으로 위반하는 것 없이 로 지정된 요소를 이 양단 큐의 말미에 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다. 사용 가능한 빈영역이 그 시점에서 존재하지 않는 경우는 IllegalStateException 를 throw 합니다. 용량 제한이 있는 양단 큐를 사용하는 경우, 일반적으로은 offerLast 를 사용하는 것을 추천합니다.

정의:
인터페이스 Deque <E > 내의 addLast
파라미터:
e - 추가하는 요소
예외:
IllegalStateException - 용량 제한이 원인으로 이 시점에서 요소를 추가할 수 없는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

offerFirst

boolean offerFirst(E  e)
용량 제한으로 위반하는 것 없이 로 지정된 요소를 이 양단 큐의 선두에 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다. 성공했을 경우는 true 를 돌려주어, 사용 가능한 빈영역이 그 시점에서 존재하지 않는 경우는 false 를 돌려줍니다. 용량 제한이 있는 양단 큐를 사용하는 경우, 일반적으로은, 요소의 삽입에 실패했을 경우에 예외를 throw 할 뿐(만큼)의 addFirst 메소드보다 이 메소드를 사용하는 것을 추천합니다.

정의:
인터페이스 Deque <E > 내의 offerFirst
파라미터:
e - 추가하는 요소
반환값:
요소가 이 양단 큐에 추가되었을 경우는 true, 그렇지 않은 경우는 false
예외:
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

offerLast

boolean offerLast(E  e)
용량 제한으로 위반하는 것 없이 로 지정된 요소를 이 양단 큐의 말미에 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다. 성공했을 경우는 true 를 돌려주어, 사용 가능한 빈영역이 그 시점에서 존재하지 않는 경우는 false 를 돌려줍니다. 용량 제한이 있는 양단 큐를 사용하는 경우, 일반적으로은, 요소의 삽입에 실패했을 경우에 예외를 throw 할 뿐(만큼)의 addLast 메소드보다 이 메소드를 사용하는 것을 추천합니다.

정의:
인터페이스 Deque <E > 내의 offerLast
파라미터:
e - 추가하는 요소
반환값:
요소가 이 양단 큐에 추가되었을 경우는 true, 그렇지 않은 경우는 false
예외:
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

putFirst

void putFirst(E  e)
              throws InterruptedException 
지정된 요소를 이 양단 큐의 선두에 삽입합니다. 필요에 따라서, 빈 곳이 생길 때까지 대기합니다.

파라미터:
e - 추가하는 요소
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

putLast

void putLast(E  e)
             throws InterruptedException 
지정된 요소를 이 양단 큐의 말미에 삽입합니다. 필요에 따라서, 빈 곳이 생길 때까지 대기합니다.

파라미터:
e - 추가하는 요소
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

offerFirst

boolean offerFirst(E  e,
                   long timeout,
                   TimeUnit  unit)
                   throws InterruptedException 
지정된 요소를 이 양단 큐의 선두에 삽입합니다. 필요에 따라서, 지정된 대기 시간까지 빈 곳이 생기는 것을 대기합니다.

파라미터:
e - 추가하는 요소
timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unit
unit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
반환값:
성공했을 경우는 true, 빈 곳이 생기기 전으로 지정된 대기 시간이 경과했을 경우는 false
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

offerLast

boolean offerLast(E  e,
                  long timeout,
                  TimeUnit  unit)
                  throws InterruptedException 
지정된 요소를 이 양단 큐의 말미에 삽입합니다. 필요에 따라서, 지정된 대기 시간까지 빈 곳이 생기는 것을 대기합니다.

파라미터:
e - 추가하는 요소
timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unit
unit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
반환값:
성공했을 경우는 true, 빈 곳이 생기기 전으로 지정된 대기 시간이 경과했을 경우는 false
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

takeFirst

E  takeFirst()
            throws InterruptedException 
이 양단 큐의 최초의 요소를 취득해 삭제합니다. 필요에 따라서, 요소가 이용 가능하게 될 때까지 대기합니다.

반환값:
이 양단 큐의 선두
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우

takeLast

E  takeLast()
           throws InterruptedException 
이 양단 큐의 마지막 요소를 취득해 삭제합니다. 필요에 따라서, 요소가 이용 가능하게 될 때까지 대기합니다.

반환값:
이 양단 큐의 말미
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우

pollFirst

E  pollFirst(long timeout,
            TimeUnit  unit)
            throws InterruptedException 
이 양단 큐의 최초의 요소를 취득해 삭제합니다. 필요에 따라서, 지정된 대기 시간까지 요소가 이용 가능하게 되는 것을 대기합니다.

파라미터:
timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unit
unit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
반환값:
이 양단 큐의 선두, 요소가 이용 가능하게 되기 전으로 지정된 대기 시간이 경과했을 경우는 null
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우

pollLast

E  pollLast(long timeout,
           TimeUnit  unit)
           throws InterruptedException 
이 양단 큐의 마지막 요소를 취득해 삭제합니다. 필요에 따라서, 지정된 대기 시간까지 요소가 이용 가능하게 되는 것을 대기합니다.

파라미터:
timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unit
unit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
반환값:
이 양단 큐의 말미, 요소가 이용 가능하게 되기 전으로 지정된 대기 시간이 경과했을 경우는 null
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우

removeFirstOccurrence

boolean removeFirstOccurrence(Object  o)
지정된 요소의 쳐 최초로 출현한 것을, 이 양단 큐로부터 삭제합니다. 그 요소가 양단 큐에 없는 경우, 변경은 없습니다. 즉,o.equals(e) 가 되는 최초의 요소 e 가 존재하는 경우는, 그 요소를 삭제합니다. 지정된 요소가 양단 큐내에 있었을 경우 (양단 큐가 호출의 결과로서 변경되었을 경우)는,true 를 돌려줍니다.

정의:
인터페이스 Deque <E > 내의 removeFirstOccurrence
파라미터:
o - 이 양단 큐로부터 삭제되는 요소 (그 요소가 존재하는 경우)
반환값:
이 호출의 결과, 요소가 삭제되었을 경우는 true
예외:
ClassCastException - 지정된 요소의 클래스가, 이 양단 큐와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 인 경우 (생략 가능)

removeLastOccurrence

boolean removeLastOccurrence(Object  o)
지정된 요소의 쳐 마지막에 출현한 것을, 이 양단 큐로부터 삭제합니다. 그 요소가 양단 큐에 없는 경우, 변경은 없습니다. 즉,o.equals(e) 가 되는 마지막 요소 e 가 존재하는 경우는, 그 요소를 삭제합니다. 지정된 요소가 양단 큐내에 있었을 경우 (양단 큐가 호출의 결과로서 변경되었을 경우)는,true 를 돌려줍니다.

정의:
인터페이스 Deque <E > 내의 removeLastOccurrence
파라미터:
o - 이 양단 큐로부터 삭제되는 요소 (그 요소가 존재하는 경우)
반환값:
이 호출의 결과, 요소가 삭제되었을 경우는 true
예외:
ClassCastException - 지정된 요소의 클래스가, 이 양단 큐와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 인 경우 (생략 가능)

add

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

이 메소드는,addLast 와 동등합니다.

정의:
인터페이스 BlockingQueue <E > 내의 add
정의:
인터페이스 Collection <E > 내의 add
정의:
인터페이스 Deque <E > 내의 add
정의:
인터페이스 Queue <E > 내의 add
파라미터:
e - 추가하는 요소
반환값:
true (Collection.add(E) 로 지정되고 있는 대로)
예외:
IllegalStateException - 용량 제한이 원인으로 이 시점에서 요소를 추가할 수 없는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

offer

boolean offer(E  e)
지정된 요소를, 이 양단 큐로 나타내지는 큐 (즉, 이 양단 큐의 말미)에, 용량 제한으로 위반하는 것 없이 곧바로 삽입할 수 있는 경우에는, 그렇게 하겠습니다. 성공했을 경우는 true 를 돌려주어, 사용 가능한 빈영역이 그 시점에서 존재하지 않는 경우는 false 를 돌려줍니다. 용량 제한이 있는 양단 큐를 사용하는 경우, 일반적으로은, 요소의 삽입에 실패했을 경우에 예외를 throw 할 뿐(만큼)의 add(E) 메소드보다 이 메소드를 사용하는 것을 추천합니다.

이 메소드는,offerLast 와 동등합니다.

정의:
인터페이스 BlockingQueue <E > 내의 offer
정의:
인터페이스 Deque <E > 내의 offer
정의:
인터페이스 Queue <E > 내의 offer
파라미터:
e - 추가하는 요소
반환값:
이 큐에 요소가 추가되었을 경우는 true, 그 이외의 경우는 false
예외:
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

put

void put(E  e)
         throws InterruptedException 
지정된 요소를 이 양단 큐로 나타내지는 큐 (즉, 이 양단 큐의 말미)에 삽입합니다. 필요에 따라서, 빈 곳이 생길 때까지 대기합니다.

이 메소드는,putLast 와 동등합니다.

정의:
인터페이스 BlockingQueue <E > 내의 put
파라미터:
e - 추가하는 요소
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

offer

boolean offer(E  e,
              long timeout,
              TimeUnit  unit)
              throws InterruptedException 
지정된 요소를 이 양단 큐로 나타내지는 큐 (즉, 이 양단 큐의 말미)에 삽입합니다. 필요에 따라서, 지정된 대기 시간까지 빈 곳이 생기는 것을 대기합니다.

이 메소드는,offerLast 와 동등합니다.

정의:
인터페이스 BlockingQueue <E > 내의 offer
파라미터:
e - 추가하는 요소
timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unit
unit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
반환값:
요소가 이 양단 큐에 추가되었을 경우는 true, 그렇지 않은 경우는 false
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

remove

E  remove()
이 양단 큐에 의해 나타내지는 큐의 선두 (즉, 이 양단 큐의 최초의 요소)를 취득해 삭제합니다. 이 메소드는, 양단 큐가 빈 상태(empty)의 경우에 예외를 throw 하는 점만이 poll 와 다릅니다.

이 메소드는,removeFirst 와 동등합니다.

정의:
인터페이스 Deque <E > 내의 remove
정의:
인터페이스 Queue <E > 내의 remove
반환값:
이 양단 큐로 나타내지는 큐의 선두
예외:
NoSuchElementException - 이 양단 큐가 빈 상태(empty)의 경우

poll

E  poll()
이 양단 큐에 의해 나타내지는 큐의 선두 (즉, 이 양단 큐의 최초의 요소)를 취득해 삭제합니다. 양단 큐가 빈 상태(empty)의 경우는,null 를 돌려줍니다.

이 메소드는,Deque.pollFirst() 와 동등합니다.

정의:
인터페이스 Deque <E > 내의 poll
정의:
인터페이스 Queue <E > 내의 poll
반환값:
양단 큐의 선두. 양단 큐가 빈 상태(empty)의 경우는 null

take

E  take()
       throws InterruptedException 
이 양단 큐에 의해 나타내지는 큐의 선두 (즉, 이 양단 큐의 최초의 요소)를 취득해 삭제합니다. 필요에 따라서, 요소가 이용 가능하게 될 때까지 대기합니다.

이 메소드는,takeFirst 와 동등합니다.

정의:
인터페이스 BlockingQueue <E > 내의 take
반환값:
이 양단 큐의 선두
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우

poll

E  poll(long timeout,
       TimeUnit  unit)
       throws InterruptedException 
이 양단 큐에 의해 나타내지는 큐의 선두 (즉, 이 양단 큐의 최초의 요소)를 취득해 삭제합니다. 필요에 따라서, 지정된 대기 시간까지 요소가 이용 가능하게 되는 것을 대기합니다.

이 메소드는,pollFirst 와 동등합니다.

정의:
인터페이스 BlockingQueue <E > 내의 poll
파라미터:
timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unit
unit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
반환값:
이 양단 큐의 선두, 요소가 이용 가능하게 되기 전으로 지정된 대기 시간이 경과했을 경우는 null
예외:
InterruptedException - 대기중에 인터럽트가 발생했을 경우

element

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

이 메소드는,getFirst 와 동등합니다.

정의:
인터페이스 Deque <E > 내의 element
정의:
인터페이스 Queue <E > 내의 element
반환값:
이 양단 큐의 선두
예외:
NoSuchElementException - 이 양단 큐가 빈 상태(empty)의 경우

peek

E  peek()
이 양단 큐에 의해 나타내지는 큐의 선두 (즉, 이 양단 큐의 최초의 요소)를 가져옵니다만, 삭제하지 않습니다. 양단 큐가 빈 상태(empty)의 경우는,null 를 돌려줍니다.

이 메소드는,peekFirst 와 동등합니다.

정의:
인터페이스 Deque <E > 내의 peek
정의:
인터페이스 Queue <E > 내의 peek
반환값:
양단 큐의 선두. 양단 큐가 빈 상태(empty)의 경우는 null

remove

boolean remove(Object  o)
지정된 요소의 쳐 최초로 출현한 것을, 이 양단 큐로부터 삭제합니다. 그 요소가 양단 큐에 없는 경우, 변경은 없습니다. 즉,o.equals(e) 가 되는 최초의 요소 e 가 존재하는 경우는, 그 요소를 삭제합니다. 지정된 요소가 양단 큐내에 있었을 경우 (양단 큐가 호출의 결과로서 변경되었을 경우)는,true 를 돌려줍니다.

이 메소드는,removeFirstOccurrence 와 동등합니다.

정의:
인터페이스 BlockingQueue <E > 내의 remove
정의:
인터페이스 Collection <E > 내의 remove
정의:
인터페이스 Deque <E > 내의 remove
파라미터:
o - 이 양단 큐로부터 삭제되는 요소 (그 요소가 존재하는 경우)
반환값:
이 호출의 결과, 이 양단 큐가 변경되었을 경우는 true
예외:
ClassCastException - 지정된 요소의 클래스가, 이 양단 큐와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 인 경우 (생략 가능)

contains

boolean contains(Object  o)
지정된 요소가 이 양단 큐에 포함되어 있는 경우에 true 를 돌려줍니다. 즉, 양단 큐에,o.equals(e) 가 되는 요소 e 가 1 개 이상 포함되어 있는 경우에만 true 를 돌려줍니다.

정의:
인터페이스 BlockingQueue <E > 내의 contains
정의:
인터페이스 Collection <E > 내의 contains
정의:
인터페이스 Deque <E > 내의 contains
파라미터:
o - 이 양단 큐에 포함되어 있는지 어떤지를 조사하는 객체
반환값:
지정된 요소가 이 양단 큐에 포함되어 있는 경우는 true
예외:
ClassCastException - 지정된 요소의 클래스가, 이 양단 큐와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 인 경우 (생략 가능)

size

int size()
이 양단 큐내의 요소의 수를 돌려줍니다.

정의:
인터페이스 Collection <E > 내의 size
정의:
인터페이스 Deque <E > 내의 size
반환값:
이 양단 큐내의 요소의 수

iterator

Iterator <E > iterator()
이 양단 큐내의 요소를 적절한 순서로 반복 처리 하는 반복자를 돌려줍니다. 요소는 최초 (선두)부터 최후 (말미)의 순서에 돌려주어집니다.

정의:
인터페이스 Collection <E > 내의 iterator
정의:
인터페이스 Deque <E > 내의 iterator
정의:
인터페이스 Iterable <E > 내의 iterator
반환값:
양단 큐내의 요소를 적절한 순서로 반복 처리 하는 반복자

push

void push(E  e)
이 양단 큐로 나타내지는 스택에 요소를 넣습니다. 즉, 용량 제한으로 위반하지 않는 한, 요소를 이 양단 큐의 선두에 삽입합니다.

이 메소드는,addFirst 와 동등합니다.

정의:
인터페이스 Deque <E > 내의 push
파라미터:
e - 푸쉬 하는 요소
예외:
IllegalStateException - 용량 제한이 원인으로 이 시점에서 요소를 추가할 수 없는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우

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 도 참조해 주세요.