|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.util.AbstractCollection <E>
java.util.AbstractQueue <E>
java.util.PriorityQueue<E>
E
- 컬렉션내에 존재하는 요소의 형태public class PriorityQueue<E>
우선도 heap에 근거하는, 무제한의 우선도큐입니다. 우선도 큐의 요소의 순서부는,자연 순서부에 따라 행해지는지, 큐 구축시에 제공되는 Comparator
를 사용해 행해집니다. 그 어느 쪽이 될까는, 사용하는 생성자 에 의해 정해집니다. 우선도 큐에서는,null
요소는 허가되지 않습니다. 자연 순서부에 근거하는 우선도 큐에서는, 비교 불가능한 객체의 삽입도 허가되지 않습니다 (실행하면(자) ClassCastException
가 throw 된다).
이 큐의 「선두」는, 지정된 순서부의 「최소」요소입니다. 복수의 요소가 최소의 값에 연결시킬 수 있고 있는 경우, 선두는 이러한 요소의 1 개가 됩니다. 관계의 해제는 임의입니다. 큐의 취득 오퍼레이션 poll
,remove
,peek
, 및 element
는, 큐의 선두의 요소에 액세스 합니다.
우선도 큐에는 제한은 없습니다만, 요소를 큐에 포함하는데 사용하는 배열 사이즈를 제어하는 내부 「용량」은 존재합니다. 어떠한 경우에서도, 이것은 큐의 사이즈와 항상 같은 크기입니다. 요소는 우선도 큐에 추가되기 (위해)때문에, 용량은 자동적으로 커집니다. 확대 정책의 자세한 것은, 지정되지 않습니다.
이 클래스와 그 반복자는,Collection
및 Iterator
인터페이스의 「옵션」메소드 모든 것을 구현합니다. iterator()
메소드내에서 제공되는 Iterator 에서는, 특정의 순서로 우선도 큐의 요소를 횡단(traverse) 하는 것은 보증되지 않습니다. 요소를 횡단(traverse) 하는 순서를 지정할 필요가 있는 경우는,Arrays.sort(pq.toArray())
의 사용을 고려해 주세요.
이 구현은 동기화 되지 않습니다. 몇개의 thread가 큐를 변경하는 경우는, 복수의 thread가 PriorityQueue
인스턴스에 병행해 액세스 해서는 안됩니다. 대신에, thread 세이프인 PriorityBlockingQueue
클래스를 사용해 주세요.
구현상의 주의:이 구현은, 큐에의 등록/등록 해제 메소드 (offer
,poll
,remove()
, 및 add
)에서는 O(log(n)) 시간을,remove(Object)
및 contains(Object)
메소드에서는 선형 시간을, 취득 메소드 (peek
,element
, 및 size
)에서는 일정시간을, 각각 제공합니다.
이 클래스는,Java Collections Framework 의 멤버입니다.
생성자 의 개요 | |
---|---|
PriorityQueue ()
자연 순서부 에 따라 요소를 순서 붙이고 하는, 디폴트의 초기 용량 (11)을 가지는 PriorityQueue 를 작성합니다. |
|
PriorityQueue (Collection <? extends E > c)
지정된 컬렉션내의 요소를 포함한 PriorityQueue 를 작성합니다. |
|
PriorityQueue (int initialCapacity)
자연 순서부 에 따라 요소를 순서 붙이고 하는, 지정된 초기 용량을 가지는 PriorityQueue 를 작성합니다. |
|
PriorityQueue (int initialCapacity,
Comparator <? super E > comparator)
지정된 Comparator에 따라 요소를 순서 붙이고 하는, 지정된 초기 용량을 가지는 PriorityQueue 를 작성합니다. |
|
PriorityQueue (PriorityQueue <? extends E > c)
지정된 우선도 큐내의 요소를 포함한 PriorityQueue 를 작성합니다. |
|
PriorityQueue (SortedSet <? extends E > c)
지정된 소트 세트내의 요소를 포함한 PriorityQueue 를 작성합니다. |
메소드의 개요 | ||
---|---|---|
boolean |
add (E e)
지정된 요소를 이 우선도 큐에 삽입합니다. |
|
void |
clear ()
모든 요소를 우선도 큐로부터 삭제합니다. |
|
Comparator <? super E > |
comparator ()
이 큐내의 요소를 순서 붙이고 하는데 사용하는 Comparator를 돌려줍니다. |
|
boolean |
contains (Object o)
이 큐로 지정된 요소가 포함되어 있는 경우에 true 를 돌려줍니다. |
|
Iterator <E > |
iterator ()
이 큐내의 요소의 반복자를 돌려줍니다. |
|
boolean |
offer (E e)
지정된 요소를 이 우선도 큐에 삽입합니다. |
|
E |
peek ()
큐의 선두를 가져옵니다만, 삭제하지 않습니다. |
|
E |
poll ()
큐의 선두를 취득 및 삭제합니다. |
|
boolean |
remove (Object o)
지정된 요소의 단일의 인스턴스가 이 큐에 존재하는 경우는, 큐로부터 삭제합니다. |
|
int |
size ()
이 컬렉션중의 요소의 수를 돌려줍니다. |
|
Object [] |
toArray ()
이 큐의 요소가 모두 포함되어 있는 배열을 돌려줍니다. |
|
|
toArray (T[] a)
이 큐내의 모든 요소를 포함한 배열을 돌려줍니다. |
클래스 java.util. AbstractQueue 로부터 상속된 메소드 |
---|
addAll , element , remove |
클래스 java.util. AbstractCollection 로부터 상속된 메소드 |
---|
containsAll , isEmpty , removeAll , retainAll , toString |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
인터페이스 java.util. Collection 로부터 상속된 메소드 |
---|
containsAll , equals , hashCode , isEmpty , removeAll , retainAll |
생성자 의 상세 |
---|
public PriorityQueue()
PriorityQueue
를 작성합니다.
public PriorityQueue(int initialCapacity)
PriorityQueue
를 작성합니다.
initialCapacity
- 이 우선도 큐의 초기 용량
IllegalArgumentException
- initialCapacity
가 1 보다 작은 경우public PriorityQueue(int initialCapacity, Comparator <? super E > comparator)
PriorityQueue
를 작성합니다.
initialCapacity
- 이 우선도 큐의 초기 용량comparator
- 이 우선도 큐를 순서 붙이고 하기 위해서 사용되는 Comparator. null
의 경우, 요소 자연 순서부 가 사용된다
IllegalArgumentException
- initialCapacity
가 1 보다 작은 경우public PriorityQueue(Collection <? extends E > c)
PriorityQueue
를 작성합니다. 지정된 컬렉션이 SortedSet
의 인스턴스일까 다른 PriorityQueue
인 경우, 이 우선도 큐의 순서부는, 그것과 같은 순서부에 따라 행해집니다. 그 이외의 경우, 이 우선도 큐의 순서부는, 그 요소 자연 순서부 에 따라 행해집니다.
c
- 요소가 우선도 큐에 배치되는 컬렉션
ClassCastException
- 지정된 컬렉션의 요소를 우선도 큐의 순서부에 따라 상호 비교할 수 없는 경우
NullPointerException
- 지정된 컬렉션 또는 그 몇개의 요소가 null 인 경우public PriorityQueue(PriorityQueue <? extends E > c)
PriorityQueue
를 작성합니다. 이 우선도 큐의 순서부는, 지정된 우선도 큐와 같은 순서부에 따라 행해집니다.
c
- 요소가 이 우선도 큐에 배치되는 우선도 큐
ClassCastException
- c
의 요소를 c
의 순서부에 따라 상호 비교할 수 없는 경우
NullPointerException
- 지정된 우선도 큐 또는 그 몇개의 요소가 null 인 경우public PriorityQueue(SortedSet <? extends E > c)
PriorityQueue
를 작성합니다. 이 우선도 큐의 순서부는, 지정된 소트 세트와 같은 순서부에 따라 행해집니다.
c
- 요소가 우선도 큐에 배치되는 소트 세트
ClassCastException
- 지정된 소트 세트의 요소를 그 소트 세트의 순서부에 따라 상호 비교할 수 없는 경우
NullPointerException
- 지정된 소트 세트 또는, 그 요소중 한쪽이 null 의 경우메소드의 상세 |
---|
public boolean add(E e)
Collection <E >
내의 add
Queue <E >
내의 add
AbstractQueue <E >
내의 add
e
- 추가하는 요소
true
(Collection.add(E)
로 지정되었을 경우와 같이)
ClassCastException
- 지정된 요소와 이 우선도 큐내에 현재 존재하고 있는 요소라는 비교를, 이 우선도 큐의 순서부에 따라 실시할 수 없는 경우
NullPointerException
- 지정된 요소가 null 인 경우public boolean offer(E e)
Queue <E >
내의 offer
e
- 추가하는 요소
true
(Queue.offer(E)
로 지정되고 있는 대로)
ClassCastException
- 지정된 요소와 이 우선도 큐내에 현재 존재하고 있는 요소라는 비교를, 이 우선도 큐의 순서부에 따라 실시할 수 없는 경우
NullPointerException
- 지정된 요소가 null 인 경우public E peek()
Queue
의 기술:
Queue <E >
내의 peek
public boolean remove(Object o)
o.equals(e)
가 되는 요소 e
가 이 큐내에 1 개 이상 포함되어 있는 경우에, 그 1 개(살)을 삭제합니다. 이 큐로 지정된 요소가 포함되어 있었을 경우 (즉, 호출의 결과로서 이 큐가 변경되었을 경우)에만,true
를 돌려줍니다.
Collection <E >
내의 remove
AbstractCollection <E >
내의 remove
o
- 큐로부터 삭제되는 요소 (그 요소가 존재하는 경우)
true
public boolean contains(Object o)
true
를 돌려줍니다. 즉, 큐에 o.equals(e)
가 되는 요소 e
가 1 개 이상 포함되어 있는 경우에만 true
를 돌려줍니다.
Collection <E >
내의 contains
AbstractCollection <E >
내의 contains
o
- 이 큐에 포함되어 있는지 어떤지를 조사하는 객체
true
public Object [] toArray()
반환되는 배열에의 참조를 이 큐가 유지하지 않는다고 하는 점으로써, 이 배열은 안전합니다. (즉, 이 메소드는 새로운 배열을 할당할 필요가 있습니다). 이 때문에, 호출측은, 반환된 배열을 자유롭게 변경할 수 있습니다.
메소드는, 배열 베이스의 API 와 컬렉션 베이스의 API 의 사이의 중개역으로서 기능합니다.
Collection <E >
내의 toArray
AbstractCollection <E >
내의 toArray
public <T> T[] toArray(T[] a)
지정된 배열에 큐가 수습되어도 한층 더 스페이스가 있는 경우, 즉 배열에 큐보다 많은 요소가 있는 경우는, 컬렉션의 마지막 직후에 있는 배열내의 요소는 null
로 설정됩니다.
toArray()
메소드와 같이, 이 메소드는, 배열 베이스의 API 와 컬렉션 베이스의 API 의 사이의 중개역으로서 기능합니다. 게다가 이 메소드에서는, 출력 배열의 실행시의 형태를 정확하게 제어할 수 있기 (위해)때문에, 환경에 따라서는 할당의 수고를 억제할 수가 있습니다.
x 가, 캐릭터 라인만으로부터 되는 큐인 것을 알 수 있고 있으면(자) 가정합니다. 다음의 코드를 사용하면(자), 새롭게 할당할 수 있었던 String 의 배열에 큐를 덤프 할 수 있습니다.
String[] y = x.toArray(new String[0]);toArray(new Object[0]) 는, 기능의 점으로써 toArray() 와 동일합니다.
Collection <E >
내의 toArray
AbstractCollection <E >
내의 toArray
a
- 배열이 충분한 크기를 가지는 경우는, 큐의 요소가 포함되는 배열. 그렇지 않은 경우는, 요소를 포함하기 위해서 같은 실행시의 형태의 새로운 배열을 할당할 수 있다
ArrayStoreException
- 지정된 배열의 실행시의 형태가, 이 큐내의 모든 요소의 실행시의 형태의 슈퍼타입이 아닌 경우
NullPointerException
- 지정된 배열이 null 인 경우public Iterator <E > iterator()
Iterable <E >
내의 iterator
Collection <E >
내의 iterator
AbstractCollection <E >
내의 iterator
public int size()
Collection
의 기술:
Collection <E >
내의 size
AbstractCollection <E >
내의 size
public void clear()
Collection <E >
내의 clear
AbstractQueue <E >
내의 clear
public E poll()
Queue
의 기술:
Queue <E >
내의 poll
public Comparator <? super E > comparator()
null
를 돌려줍니다.
null
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.