|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
java.lang.Object | +--java.util.AbstractCollection | +--java.util.AbstractSet | +--java.util.TreeSet
이 클래스는 TreeMap 의 인스턴스에 근거하는 Set 인터페이스를 구현합니다. 이 클래스에서는 소트 세트가 확실히 요소의 승순으로 소트 됩니다. 다만, 소트 방법은 사용되는 constructor 에 의해 달라, 요소의 「자연 순서 붙이고」(Comparable 를 참조)에 의해 소트 되는 경우와 세트 작성시에 제공되는 콤퍼레이터에 의해 소트 되는 경우가 있습니다.
이 구현은 기본 오퍼레이션 (add,remove, 및 contains)에 프로텍션 끝난 log(n) 시간 코스트를 제공합니다.
세트가 Set 인터페이스를 올바르게 구현하는 경우는 명시적인 콤퍼레이터의 제공의 유무에 관계없이, 세트로 관리되는 순서부는 「equals 와의 일관성」이 필요합니다 ( 「equals 와의 일관성」의 정확한 정의에 대해서는 Comparable 또는 Comparator 를 참조). 이것은 Set 인터페이스가 equals 오퍼레이션에 근거해 정의되기 (위해)때문에입니다만,TreeSet 의 인스턴스는 그 compareTo 메소드 또는 compare 메소드를 사용해 모든 키 비교를 실행하므로, 이 메소드에 의해 동일하다고 보여지는 2 개의 키는 세트로부터 봐도 등가입니다. 세트의 동작은 그 순서부가 equals 와 일관성이 없는 경우에서도 명확하게 정의되고 있습니다만,Set 인터페이스의 범용 규약에는 준거하고 있습니다.
이 구현은 동기화 되지 않습니다. 복수의 thread가 동시에 세트에 액세스 해, 그러한 thread의 적어도 1 kr이 구조적으로 세트를 변경하는 경우에는 외부에서 동기를 잡을 필요가 있습니다. 통상, 구조적인 변경은 세트를 자연스럽게 캡슐화하는 특정의 오브젝트로 동기를 잡는 것에 의해 달성됩니다. 그러한 오브젝트가 없는 경우에는 Collections.synchronizedSet 메소드를 사용해 세트를 「랩」합니다. 이것은 세트에의 우발적인 비동기 액세스를 막기 위해서(때문에), 작성시에 실시하는 것이 최적입니다.
SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));
이 클래스의 iterator 메소드가 돌려주는 Iterator 는 「페이르파스트」입니다. 즉, 반복자의 작성 후에, 반복자 자체의 remove 메소드 이외 방법으로 세트가 변경되면(자), 반복자는 ConcurrentModificationException 를 슬로우 합니다. 따라서, 동시에 변경을 하면(자), 반복자는 장래의 예측할 수 없는 시점에 있어 예측할 수 없는 동작이 발생하는 위험을 회피하기 위해서, 즉시 한편 솜씨 자주(잘) 예외를 슬로우 합니다.
통상, 비동기의 동시 변경이 있는 경우, 확실한 프로텍션을 실시하는 것은 불가능해서, 반복자의 페이르파스트의 동작을 프로텍션할 수 없습니다. 페이르파스트 반복자는 최선 노력 원칙에 근거해,ConcurrentModificationException 를 슬로우 합니다. 따라서, 정확을 기하기 위해서 이 예외에 의존하는 프로그램을 쓰는 것은 잘못입니다. 「반복자의 페이르파스트의 동작은 버그를 검출하기 위해서 마셔 사용해야 합니다」
Collection
,
Set
,
HashSet
,
Comparable
,
Comparator
,
Collections.synchronizedSortedSet(SortedSet)
,
TreeMap
,
직렬화 된 형식 생성자의 개요 | |
TreeSet ()
요소의 자연 순서부에 따라 소트 된, 새로운 하늘세트를 작성합니다. |
|
TreeSet (Collection c)
지정된 콜렉션내의 요소를 가져, 요소의 「자연 순서 붙이고」에 따라 소트 된 새로운 세트를 작성합니다. |
|
TreeSet (Comparator c)
지정된 콤퍼레이터에 따라 소트 된, 새로운 하늘세트를 작성합니다. |
|
TreeSet (SortedSet s)
지정된 소트 세트와 같은 요소를 가져, 같은 순서부에 따라 소트 된, 새로운 세트를 작성합니다. |
메소드의 개요 | |
boolean |
add (Object o)
지정된 요소가 세트의 요소로서 존재하지 않는 경우에, 그 요소를 세트에 추가합니다. |
boolean |
addAll (Collection c)
지정된 콜렉션내의 모든 요소를 세트에 추가합니다. |
void |
clear ()
모든 요소를 세트로부터 삭제합니다. |
Object |
clone ()
TreeSet 의 인스턴스의 샤로코피를 돌려줍니다. |
Comparator |
comparator ()
소트 세트를 순서 붙이고 하는데 사용하는 콤퍼레이터를 돌려줍니다. |
boolean |
contains (Object o)
세트가, 지정된 요소를 보관 유지하고 있는 경우에 true 를 돌려줍니다. |
Object |
first ()
소트 세트내에 현재 있는 최초 (하단)의 요소를 돌려줍니다. |
SortedSet |
headSet (Object toElement)
세트의 toElement 보다 작은 요소를 가지는 부분의 뷰를 돌려줍니다. |
boolean |
isEmpty ()
세트가 요소를 1 개나 보관 유지하고 있지 않는 경우에 true 를 돌려줍니다. |
Iterator |
iterator ()
세트내의 각 요소에 대한 반복자를 돌려줍니다. |
Object |
last ()
소트 세트내에 현재 있는 최후 (상단)의 요소를 돌려줍니다. |
boolean |
remove (Object o)
지정된 요소가 있으면 세트로부터 삭제합니다. |
int |
size ()
세트내의 요소수 (그 카디나리티)를 돌려줍니다. |
SortedSet |
subSet (Object fromElement,
Object toElement)
세트의 fromElement (이것을 포함한다) ~ toElement (이것을 포함하지 않는다)의 요소 범위를 가지는 부분의 뷰를 돌려줍니다. |
SortedSet |
tailSet (Object fromElement)
세트의 fromElement 에 동일한가 이것보다 큰 요소를 가지는 부분의 뷰를 돌려줍니다. |
클래스 java.util. AbstractSet 에서 상속받은 메소드 |
equals , hashCode , removeAll |
클래스 java.util. AbstractCollection 에서 상속받은 메소드 |
containsAll , retainAll , toArray , toArray , toString |
클래스 java.lang. Object 에서 상속받은 메소드 |
finalize , getClass , notify , notifyAll , wait , wait , wait |
인터페이스 java.util. Set 에서 상속받은 메소드 |
containsAll , equals , hashCode , removeAll , retainAll , toArray , toArray |
생성자의 상세 |
public TreeSet()
Comparable
public TreeSet(Comparator c)
c
- 이 세트를 소트 하기 위해서 사용되는 콤퍼레이터. null 치는 요소의 「자연 순서 붙이고」를 사용하는 것을 나타낸다public TreeSet(Collection c)
c
- 새로운 세트를 구성하는 요소
ClassCastException
- 지정된 콜렉션내의 키가 비교 가능하지 않은 경우, 혹은 서로 비교 가능하지 않은 경우
NullPointerException
- 지정된 콜렉션이 null 인 경우public TreeSet(SortedSet s)
s
- 새로운 세트를 구성하는 요소로부터 되는 소트 세트
NullPointerException
- 지정된 소트 세트가 null 의 경우메소드의 상세 |
public Iterator iterator()
Set
내의 iterator
AbstractCollection
내의 iterator
public int size()
Set
내의 size
AbstractCollection
내의 size
public boolean isEmpty()
Set
내의 isEmpty
AbstractCollection
내의 isEmpty
public boolean contains(Object o)
Set
내의 contains
AbstractCollection
내의 contains
o
- 이 세트에 있을지 어떨지를 판정하는 오브젝트
ClassCastException
- 지정된 오브젝트가 세트내에 현재 있는 요소와 비교 가능하지 않은 경우public boolean add(Object o)
Set
내의 add
AbstractCollection
내의 add
o
- 세트에 추가되는 요소
ClassCastException
- 지정된 오브젝트가 세트내에 현재 있는 요소와 비교 가능하지 않은 경우public boolean remove(Object o)
Set
내의 remove
AbstractCollection
내의 remove
o
- 세트에 있으면 삭제되는 오브젝트
ClassCastException
- 지정된 오브젝트가 세트내에 현재 있는 요소와 비교 가능하지 않은 경우public void clear()
Set
내의 clear
AbstractCollection
내의 clear
public boolean addAll(Collection c)
Set
내의 addAll
AbstractCollection
내의 addAll
c
- 추가되는 요소
ClassCastException
- 지정된 요소가 세트내에 현재 있는 요소와 비교 가능하지 않은 경우
NullPointerException
- 지정된 콜렉션이 null 의 경우Set.add(Object)
public SortedSet subSet(Object fromElement, Object toElement)
이 메소드가 돌려주는 소트 세트는 유저가 요소를 지정의 범위외에 삽입하려고 하면(자) IllegalArgumentException 를 슬로우 합니다.
주: 이 메소드는 항상, 그 하단점은 포함하지만 상단점은 포함하지 않는 「한쪽 편이 열린 범위」를 돌려줍니다. 상하단점을 포함한 「닫은 범위」가 필요해, 요소의 형태에 의해 지정된 값으로 직후의 요소의 계산이 가능하게 되는 경우, 단지 lowEndpoint ~ successor(highEndpoint) 의 부분 범위를 지정해 주세요. 예를 들어,s 가 캐릭터 라인의 소트 세트인 경우, 다음의 관용법은 s 내의 low ~ high 의 모든 캐릭터 라인 (상하단점을 포함한다)을 보관 유지하는 뷰를 취득합니다.
SortedSet sub = s.subSet(low, high+"\0");같은 테크닉을 사용해, 상하단점의 어느쪽이나 포함하지 않는 「연 범위」를 생성할 수 있습니다. 다음의 관용법은 s 내의 low ~ high 의 모든 캐릭터 라인 (상하단점을 포함하지 않는다)을 보관 유지하는 뷰를 취득합니다.
SortedSet sub = s.subSet(low+"\0", high);
SortedSet
내의 subSet
fromElement
- subSet 의 하단점 (이것을 포함한다)toElement
- subSet 의 상단점 (이것을 포함하지 않는다)
ClassCastException
- 세트의 콤퍼레이터를 사용해,fromElement 와 toElement 를 서로 비교할 수 없는 경우 (또는 세트에 자연 순서부를 사용하는 콤퍼레이터가 없는 경우)
IllegalArgumentException
- fromElement 가 toElement 보다 큰 경우
NullPointerException
- fromElement 또는 toElement 가 null 의 경우에, 세트가 자연 순서부를 사용할 때, 혹은 그 콤퍼레이터가 null 요소를 허용 하지 않을 때public SortedSet headSet(Object toElement)
이 메소드가 돌려주는 소트 세트는 유저가 toElement 보다 큰가 동일한 요소를 삽입하려고 하면(자) IllegalArgumentException 를 슬로우 합니다.
주: 이 메소드는 항상, 그 (상)단점을 포함하지 않는 뷰를 돌려줍니다. 이 단 점을 포함한 뷰를 필요로 해, 요소의 형태에 의해 지정된 값으로 직후의 요소의 계산이 가능하게 되는 경우, 단지 successor(highEndpoint) 에 의해 한계를 설치된 headSet 를 지정해 주세요. 예를 들어,s 가 캐릭터 라인의 소트 세트인 경우, 다음의 관용법은 s 내의 high 보다 작은가 동일한 모든 캐릭터 라인을 보관 유지하는 뷰를 취득합니다.
SortedSet head = s.headSet(high+"\0");
SortedSet
내의 headSet
toElement
- headSet 의 상단점 (이것을 포함하지 않는다)
ClassCastException
- toElement 가 세트의 콤퍼레이터와 호환성이 없는 경우 (또는 세트에 콤퍼레이터가 없는 경우,toElement 에 Comparable 가 구현되어 있지 않은 경우)
IllegalArgumentException
- 이 세트 자체가 subSet, headSet, 또는 tailSet 로,toElement 가 지정한 범위의 subSet, headSet, 또는 tailSet 에 없는 경우
NullPointerException
- toElement 가 null 의 경우에, 세트가 자연 순서부를 사용할 때, 혹은 그 콤퍼레이터가 null 요소를 허용 하지 않을 때public SortedSet tailSet(Object fromElement)
이 메소드가 돌려주는 소트 세트는 유저가 fromElement 보다 작은 요소를 삽입하려고 하면(자) IllegalArgumentException 를 슬로우 합니다. 주: 이 메소드는 항상 그 (하)단점을 포함한 뷰를 돌려줍니다. 이 단 점을 포함하지 않는 뷰를 필요로 해, 요소의 형태에 의해 지정된 값의 직후의 요소의 계산이 가능한 경우, 값은 단지 successor(lowEndpoint) 에 의해 한계를 설치된 tailSet 를 지정해 주세요. 예를 들어,s 가 캐릭터 라인의 소트 세트인 경우, 다음의 관용법은 키가 low 보다 큰 s 내의 모든 캐릭터 라인을 보관 유지하는 뷰를 취득합니다.
SortedSet tail = s.tailSet(low+"\0");
SortedSet
내의 tailSet
fromElement
- tailSet 의 하단점 (이것을 포함한다)
ClassCastException
- fromElement 가 세트의 콤퍼레이터와 호환성이 없는 경우 (또는 세트에 콤퍼레이터가 없는 경우,fromElement 에 Comparable 가 구현되어 있지 않은 경우)
IllegalArgumentException
- 이 세트 자체가 subSet, headSet, 또는 tailSet 로,fromElement 가 지정한 범위의 subSet, headSet, 또는 tailSet 에 없는 경우
NullPointerException
- fromElement 가 null 의 경우에, 세트가 자연 순서부를 사용할 때, 혹은 그 콤퍼레이터가 null 요소를 허용 하지 않을 때public Comparator comparator()
SortedSet
내의 comparator
public Object first()
SortedSet
내의 first
NoSuchElementException
- 소트 세트가 비었을 경우public Object last()
SortedSet
내의 last
NoSuchElementException
- 소트 세트가 비었을 경우public Object clone()
Object
내의 clone
Cloneable
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.