|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
E - 컬렉션내에 존재하는 요소의 형태public interface BlockingDeque<E>
요소의 취득시에 양단 큐가 빈 상태(empty)이 아니게 될 때까지 대기하거나 요소의 포함시에 양단 큐내에 빈 곳이 생길 때까지 대기하는 블록 조작을 추가로 지원하거나 하는 Deque 입니다.
BlockingDeque 메소드에는 4 개의 형식이 있어, 곧바로는 달성할 수 없어도 장래가 있는 시점에서 달성할 수 있을 가능성이 있는 조작을 다른 방법으로 처리합니다. 1 개째는 예외를 throw 해, 2 개째는 특수한 값 (조작에 응해 null 와 false 의 어느쪽이든)을 돌려주어, 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 의 멤버입니다.
| 메소드의 개요 | |
|---|---|
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 |
| 메소드의 상세 |
|---|
void addFirst(E e)
offerFirst 를 사용하는 것을 추천합니다.
Deque <E > 내의 addFirst e - 추가하는 요소
IllegalStateException - 용량 제한이 원인으로 이 시점에서 요소를 추가할 수 없는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우void addLast(E e)
offerLast 를 사용하는 것을 추천합니다.
Deque <E > 내의 addLast e - 추가하는 요소
IllegalStateException - 용량 제한이 원인으로 이 시점에서 요소를 추가할 수 없는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우boolean offerFirst(E e)
addFirst 메소드보다 이 메소드를 사용하는 것을 추천합니다.
Deque <E > 내의 offerFirst e - 추가하는 요소
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우boolean offerLast(E e)
addLast 메소드보다 이 메소드를 사용하는 것을 추천합니다.
Deque <E > 내의 offerLast e - 추가하는 요소
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
void putFirst(E e)
throws InterruptedException
e - 추가하는 요소
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
void putLast(E e)
throws InterruptedException
e - 추가하는 요소
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
boolean offerFirst(E e,
long timeout,
TimeUnit unit)
throws InterruptedException
e - 추가하는 요소timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unitunit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
boolean offerLast(E e,
long timeout,
TimeUnit unit)
throws InterruptedException
e - 추가하는 요소timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unitunit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
E takeFirst()
throws InterruptedException
InterruptedException - 대기중에 인터럽트가 발생했을 경우
E takeLast()
throws InterruptedException
InterruptedException - 대기중에 인터럽트가 발생했을 경우
E pollFirst(long timeout,
TimeUnit unit)
throws InterruptedException
timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unitunit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
InterruptedException - 대기중에 인터럽트가 발생했을 경우
E pollLast(long timeout,
TimeUnit unit)
throws InterruptedException
timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unitunit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
InterruptedException - 대기중에 인터럽트가 발생했을 경우boolean removeFirstOccurrence(Object o)
Deque <E > 내의 removeFirstOccurrence o - 이 양단 큐로부터 삭제되는 요소 (그 요소가 존재하는 경우)
ClassCastException - 지정된 요소의 클래스가, 이 양단 큐와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 인 경우 (생략 가능)boolean removeLastOccurrence(Object o)
Deque <E > 내의 removeLastOccurrence o - 이 양단 큐로부터 삭제되는 요소 (그 요소가 존재하는 경우)
ClassCastException - 지정된 요소의 클래스가, 이 양단 큐와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 인 경우 (생략 가능)boolean add(E e)
offer 를 사용하는 것을 추천합니다.
이 메소드는,addLast 와 동등합니다.
BlockingQueue <E > 내의 add Collection <E > 내의 add Deque <E > 내의 add Queue <E > 내의 add e - 추가하는 요소
Collection.add(E) 로 지정되고 있는 대로)
IllegalStateException - 용량 제한이 원인으로 이 시점에서 요소를 추가할 수 없는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우boolean offer(E e)
add(E) 메소드보다 이 메소드를 사용하는 것을 추천합니다.
이 메소드는,offerLast 와 동등합니다.
BlockingQueue <E > 내의 offer Deque <E > 내의 offer Queue <E > 내의 offer e - 추가하는 요소
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
void put(E e)
throws InterruptedException
이 메소드는,putLast 와 동등합니다.
BlockingQueue <E > 내의 put e - 추가하는 요소
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
boolean offer(E e,
long timeout,
TimeUnit unit)
throws InterruptedException
이 메소드는,offerLast 와 동등합니다.
BlockingQueue <E > 내의 offer e - 추가하는 요소timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unitunit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
InterruptedException - 대기중에 인터럽트가 발생했을 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우E remove()
poll 와 다릅니다.
이 메소드는,removeFirst 와 동등합니다.
Deque <E > 내의 remove Queue <E > 내의 remove NoSuchElementException - 이 양단 큐가 빈 상태(empty)의 경우E poll()
이 메소드는,Deque.pollFirst() 와 동등합니다.
Deque <E > 내의 poll Queue <E > 내의 poll
E take()
throws InterruptedException
이 메소드는,takeFirst 와 동등합니다.
BlockingQueue <E > 내의 take InterruptedException - 대기중에 인터럽트가 발생했을 경우
E poll(long timeout,
TimeUnit unit)
throws InterruptedException
이 메소드는,pollFirst 와 동등합니다.
BlockingQueue <E > 내의 poll timeout - 처리를 중지할 때까지의 대기 시간. 단위는 unitunit - timeout 파라미터의 해석 방법을 결정하는 TimeUnit
InterruptedException - 대기중에 인터럽트가 발생했을 경우E element()
peek 와 다릅니다.
이 메소드는,getFirst 와 동등합니다.
Deque <E > 내의 element Queue <E > 내의 element NoSuchElementException - 이 양단 큐가 빈 상태(empty)의 경우E peek()
이 메소드는,peekFirst 와 동등합니다.
Deque <E > 내의 peek Queue <E > 내의 peek boolean remove(Object o)
이 메소드는,removeFirstOccurrence 와 동등합니다.
BlockingQueue <E > 내의 remove Collection <E > 내의 remove Deque <E > 내의 remove o - 이 양단 큐로부터 삭제되는 요소 (그 요소가 존재하는 경우)
ClassCastException - 지정된 요소의 클래스가, 이 양단 큐와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 인 경우 (생략 가능)boolean contains(Object o)
BlockingQueue <E > 내의 contains Collection <E > 내의 contains Deque <E > 내의 contains o - 이 양단 큐에 포함되어 있는지 어떤지를 조사하는 객체
ClassCastException - 지정된 요소의 클래스가, 이 양단 큐와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 인 경우 (생략 가능)int size()
Collection <E > 내의 size Deque <E > 내의 size Iterator <E > iterator()
Collection <E > 내의 iterator Deque <E > 내의 iterator Iterable <E > 내의 iterator void push(E e)
이 메소드는,addFirst 와 동등합니다.
Deque <E > 내의 push e - 푸쉬 하는 요소
IllegalStateException - 용량 제한이 원인으로 이 시점에서 요소를 추가할 수 없는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 인 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 양단 큐에 요소를 추가할 수 없는 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.