JavaTM Platform
Standard Ed. 6

java.util
인터페이스 SortedMap<K, V>

형태 파라미터:
K - 이 맵이 보관 유지하는 키의 형태
V - 맵 되는 값의 형태
모든 슈퍼 인터페이스:
Map <K, V>
기존의 서브 인터페이스의 일람:
ConcurrentNavigableMap <K, V>, NavigableMap <K, V>
기존의 구현 클래스의 일람:
ConcurrentSkipListMap , TreeMap


public interface SortedMap<K, V>
extends Map <K, V>

키에 대해서 「전체 순서 붙이고」를 추가 제공하는 Map 입니다. 맵의 순서부는, 키 자연 순서부 에 따라 행해지는지, 소트 맵 구축시에 일반적으로 제공되는 Comparator 를 사용해 행해집니다. 이 순서는, 소트 맵의 코레크션뷰 (entrySet,keySet,values 메소드에 의해 반환된다)의 반복 처리시에 반영됩니다. 그 순서부를 이용하기 위해서, 추가의 오퍼레이션이 몇개인가 제공되고 있습니다. 이 인터페이스는 맵으로,SortedSet 에 유사하고 있습니다.

소트 맵에 삽입되는 모든 키는,Comparable 인터페이스를 구현하는지, 지정된 Comparator에 의해 받아들일 수 있을 필요가 있습니다. 게다가 각 키는 「서로 비교 가능」일 필요가 있습니다. 즉,k1.compareTo(k2) (또는 comparator.compare(k1, k2))는, 소트 맵내의 임의의 키 k1k2 에 대해서도 ClassCastException 를 throw 해야 하지는 않습니다. 이 제약에 위반하면(자), 그 위반측의 메소드나 생성자 의 호출은 ClassCastException 를 throw 합니다.

어느 소트 맵이 Map 인터페이스를 올바르게 구현하려면 , 명시적인 Comparator가 제공되고 있는지 어떤지에 관계없이, 그 소트 맵에 의해 유지되는 순서부가 「equals 와의 일관성」이 있는 것 나오지 않으면 안 되는 것에 주의해 주세요. ( 「equals 와의 일관성」의 정확한 정의에 대해서는,Comparable 인터페이스 또는 Comparator 인터페이스를 참조. )이것은 Map 인터페이스가 equals 오퍼레이션에 근거해 정의되기 (위해)때문에입니다만, 소트 맵은 그 compareTo 메소드 또는 compare 메소드를 사용해 모든 키 비교를 실행하므로, 이 메소드에 의해 등가라고 보여지는 2 개의 키는, 소트 맵의 견지로부터 하면 같은 것입니다. 트리 맵의 동작은, 그 순서부가 equals 와 일관성이 없는 경우에서도 명확하게 정의되고 있습니다. 즉, 트리 맵의 동작은 Map 인터페이스의 일반 규약에 따르고 있지 않습니다.

범용의 소트 맵 구현 클래스는 모두, 4 개의 표준 생성자 을 제공할 필요가 있습니다. 1) void (인수 없음의) 생성자. 이것은, 키의 자연 순서부에 따라 소트 된 빈 상태(empty)의 소트 맵을 작성합니다. 2) Comparator 형의 단일 인수를 가지는 생성자. 이것은, 지정된 Comparator에 따라 소트 된 빈 상태(empty)의 소트 맵을 작성합니다. 3) Map 형의 단일 인수를 가지는 생성자. 이것은, 키의 자연 순서부에 따라 소트 된, 그 인수와 같은 키와 값의 매핑을 포함한 새로운 맵을 작성합니다. 4) SortedMap 형의 단일 인수를 가지는 생성자. 이것은, 입력의 소트 맵과 동일한 키와 값의 매핑과 순서부를 가지는, 새로운 소트 맵을 작성합니다. 이 추천을 강제하는 방법은 없습니다. 왜냐하면, 인터페이스에는 생성자 을 포함할 수가 없기 때문입니다.

주:일부의 메소드는, 제한된 키 범위를 가지는 서브 맵을 돌려줍니다. 그러한 범위는 「한쪽 편이 열리며」있습니다. 즉, 그러한 범위에는, 하단점은 포함됩니다만 상단점은 포함되지 않습니다 (해당하는 경우). 상하단점을 포함한 「닫은 범위」가 필요해, 키의 형태에 의해 직후의 키가 계산 가능하게 되는 경우, 단지 lowEndpoint ~ successor(highEndpoint) 의 부분 범위를 지정해 주세요. 예를 들어,m 가, 키가 캐릭터 라인의 맵이다고 합니다. 다음의 관용법은, 키가 low ~ high 의 범위 (상하단점을 포함한다)에 있는 m 내의 모든 키와 값의 매핑을 보관 유지하는 뷰를 가져옵니다.

SortedMap<String, V> sub = m.subMap(low, high+"\0");
같은 테크닉을 사용해, 상하단점의 어느쪽이나 포함하지 않는 「연 범위」를 생성할 수 있습니다. 다음의 관용법은, 키가 low ~ high 의 범위 (상하단점을 포함하지 않는다)에 있는 m 내의 모든 키와 값의 매핑을 보관 유지하는 뷰를 가져옵니다.
SortedMap<String, V> sub = m.subMap(low+"\0", high);

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

도입된 버젼:
1.2
관련 항목:
Map , TreeMap , SortedSet , Comparator , Comparable , Collection , ClassCastException

상자의 클래스의 개요
 
인터페이스 java.util. Map 로부터 상속된 상자의 클래스/인터페이스
Map.Entry <K ,V >
 
메소드의 개요
 Comparator <? super K > comparator ()
          이 맵내의 키를 순서 붙이고 하는데 사용하는 Comparator를 돌려줍니다.
 Set <Map.Entry <K ,V >> entrySet ()
          이 맵에 포함되는 맵 Set 뷰를 돌려줍니다.
 K firstKey ()
          맵내에 현재 있는 최초 (하단)의 키를 돌려줍니다.
 SortedMap <K ,V > headMap (K  toKey)
          맵의 toKey 보다 작은 키를 가지는 부분의 뷰를 돌려줍니다.
 Set <K > keySet ()
          이 맵에 포함되는 키 Set 뷰를 돌려줍니다.
 K lastKey ()
          맵내에 현재 있는 최후 (상단)의 키를 돌려줍니다.
 SortedMap <K ,V > subMap (K  fromKey, K  toKey)
          맵의 fromKey (이것을 포함한다) ~ toKey (이것을 포함하지 않는다)의 키 범위를 가지는 부분의 뷰를 돌려줍니다.
 SortedMap <K ,V > tailMap (K  fromKey)
          맵의 fromKey 이상의 키를 가지는 부분의 뷰를 돌려줍니다.
 Collection <V > values ()
          이 맵에 포함되는 값 Collection 뷰를 돌려줍니다.
 
인터페이스 java.util. Map 로부터 상속된 메소드
clear , containsKey , containsValue , equals , get , hashCode , isEmpty , put , putAll , remove , size
 

메소드의 상세

comparator

Comparator <?  super K > comparator()
이 맵내의 키를 순서 붙이고 하는데 사용하는 Comparator를 돌려줍니다. 다만, 이 맵이 그 키 자연 순서부 를 사용하는 경우는 null 를 돌려줍니다.

반환값:
이 맵내의 키를 순서 붙이고 하는데 사용하는 Comparator. 다만, 이 맵이 그 키의 자연 순서부를 사용하는 경우는 null

subMap

SortedMap <K ,V > subMap(K  fromKey,
                      K  toKey)
맵의 fromKey (이것을 포함한다) ~ toKey (이것을 포함하지 않는다)의 키 범위를 가지는 부분의 뷰를 돌려줍니다. fromKeytoKey 가 동일한 경우는, 빈 상태(empty)의 맵이 돌려주어집니다. 반환되는 맵은 이 맵에 연동하고 있어, 반환되는 맵에서의 변경은 이 맵에 반영되어 그 역의 경우도 같습니다. 반환되는 맵은, 이 맵이 지원하는 옵션의 맵 오퍼레이션을 모두 지원합니다.

반환되는 맵은, 그 범위외의 키가 삽입되려고 하면(자),IllegalArgumentException 를 throw 합니다.

파라미터:
fromKey - 반환되는 맵내의 키의 하단점 (이것을 포함한다)
toKey - 반환되는 맵내의 키의 상단점 (이것을 포함하지 않는다)
반환값:
맵의 fromKey (이것을 포함한다) ~ toKey (이것을 포함하지 않는다)의 키 범위를 가지는 부분의 뷰
예외:
ClassCastException - 이 맵의 Comparator를 사용해 (이 맵이 Comparator를 가지지 않는 경우는 자연 순서부를 사용해) fromKeytoKey 와의 상호 비교를 실시할 수 없는 경우. 구현은, 맵내에 현재 존재하고 있는 키와 fromKey 또는 toKey 를 비교할 수 없는 경우에 이 예외를 throw 할 수가 있다. 다만, 필수는 아니다
NullPointerException - fromKey 또는 toKey 가 null 이며, 이 맵이 null 키를 허가하지 않는 경우
IllegalArgumentException - fromKeytoKey 보다 큰 경우, 또는 이 맵 자체가 제한된 범위를 가지고 있어fromKey 또는 toKey 가 그 범위의 경계의 외측에 있는 경우

headMap

SortedMap <K ,V > headMap(K  toKey)
맵의 toKey 보다 작은 키를 가지는 부분의 뷰를 돌려줍니다. 반환되는 맵은 이 맵에 연동하고 있어, 반환되는 맵에서의 변경은 이 맵에 반영되어 그 역의 경우도 같습니다. 반환되는 맵은, 이 맵이 지원하는 옵션의 맵 오퍼레이션을 모두 지원합니다.

반환되는 맵은, 그 범위외의 키가 삽입되려고 하면(자),IllegalArgumentException 를 throw 합니다.

파라미터:
toKey - 반환되는 맵내의 키의 상단점 (이것을 포함하지 않는다)
반환값:
맵의 toKey 보다 작은 키를 가지는 부분의 뷰
예외:
ClassCastException - toKey 가 이 맵의 Comparator와 호환성이 없는 경우 (또는, 이 맵이 Comparator를 가지지 않는 경우,toKeyComparable 를 구현하고 있지 않는 경우). 구현은, 맵내에 현재 존재하고 있는 키와 toKey 를 비교할 수 없는 경우에 이 예외를 throw 할 수가 있다. 다만, 필수는 아니다
NullPointerException - toKey 가 null 이며, 이 맵이 null 키를 허가하지 않는 경우
IllegalArgumentException - 이 맵 자체가 제한된 범위를 가지고 있어toKey 가 그 범위의 경계의 외측에 있는 경우

tailMap

SortedMap <K ,V > tailMap(K  fromKey)
맵의 fromKey 이상의 키를 가지는 부분의 뷰를 돌려줍니다. 반환되는 맵은 이 맵에 연동하고 있어, 반환되는 맵에서의 변경은 이 맵에 반영되어 그 역의 경우도 같습니다. 반환되는 맵은, 이 맵이 지원하는 옵션의 맵 오퍼레이션을 모두 지원합니다.

반환되는 맵은, 그 범위외의 키가 삽입되려고 하면(자),IllegalArgumentException 를 throw 합니다.

파라미터:
fromKey - 반환되는 맵내의 키의 하단점 (이것을 포함한다)
반환값:
맵의 fromKey 이상의 키를 가지는 부분의 뷰
예외:
ClassCastException - fromKey 가 이 맵의 Comparator와 호환성이 없는 경우 (또는, 이 맵이 Comparator를 가지지 않는 경우,fromKeyComparable 를 구현하고 있지 않는 경우). 구현은, 맵내에 현재 존재하고 있는 키와 fromKey 를 비교할 수 없는 경우에 이 예외를 throw 할 수가 있다. 다만, 필수는 아니다
NullPointerException - fromKey 가 null 이며, 이 맵이 null 키를 허가하지 않는 경우
IllegalArgumentException - 이 맵 자체가 제한된 범위를 가지고 있어fromKey 가 그 범위의 경계의 외측에 있는 경우

firstKey

K  firstKey()
맵내에 현재 있는 최초 (하단)의 키를 돌려줍니다.

반환값:
맵내에 현재 있는 최초 (하단)의 키
예외:
NoSuchElementException - 맵이 빈 상태(empty)의 경우

lastKey

K  lastKey()
맵내에 현재 있는 최후 (상단)의 키를 돌려줍니다.

반환값:
맵내에 현재 있는 최후 (상단)의 키
예외:
NoSuchElementException - 맵이 빈 상태(empty)의 경우

keySet

Set <K > keySet()
이 맵에 포함되는 키 Set 뷰를 돌려줍니다. 세트의 반복자는, 키를 승순으로 돌려줍니다. 세트는 맵과 연동하고 있으므로, 맵에 대한 변경은 세트에 반영되어 또, 세트에 대한 변경은 맵에 반영됩니다. 세트의 반복 처리중으로 맵이 변경되었을 경우, 반복 처리의 결과는 정의되지 않습니다 (반복자 자신의 remove 오퍼레이션을 제외하다). 삭제는,Iterator.remove,Set.remove,removeAll,retainAll, 및 clear 의 각 오퍼레이션을 통해 실시합니다. Set 는,add 오퍼레이션이나 addAll 오퍼레이션은 지원하고 있습니다.

정의:
인터페이스 Map <K ,V > 내의 keySet
반환값:
맵에 포함되어 있는 키의, 승순에 소트 된 셋트뷰

values

Collection <V > values()
이 맵에 포함되는 값 Collection 뷰를 돌려줍니다. 컬렉션의 반복자는, 값을 대응하는 키의 승순으로 돌려줍니다. 컬렉션은 맵과 연동하고 있으므로, 맵에 대한 변경은 컬렉션에 반영되어 또 컬렉션에 대한 변경은 맵에 반영됩니다. 컬렉션의 반복 처리중으로 맵이 변경되었을 경우, 반복 처리의 결과는 정의되지 않습니다 (반복자 자신의 remove 오퍼레이션을 제외하다). 컬렉션은 요소의 삭제를 지원하고 있어, 대응하는 매핑을 맵으로부터 삭제할 수 있습니다. 삭제는,Iterator.remove,Collection.remove,removeAll,retainAll, 및 clear 오퍼레이션을 통해 실시합니다. Set 는,add 오퍼레이션이나 addAll 오퍼레이션은 지원하고 있습니다.

정의:
인터페이스 Map <K ,V > 내의 values
반환값:
맵에 포함되어 있는 값의, 키의 승순에 소트 된 코레크션뷰

entrySet

Set <Map.Entry <K ,V >> entrySet()
이 맵에 포함되는 맵 Set 뷰를 돌려줍니다. 세트의 반복자는, 엔트리를 키의 승순으로 돌려줍니다. 세트는 맵과 연동하고 있으므로, 맵에 대한 변경은 세트에 반영되어 또, 세트에 대한 변경은 맵에 반영됩니다. 세트에 대한 반복의 처리중으로 맵이 변경되었을 경우는, 반복 처리의 결과는 정의되지 않습니다 (반복자 자신의 remove 오퍼레이션, 또는 반복자에 의해 반환되는 맵 엔트리에 대한 setValue 오퍼레이션을 제외하다). 세트는, 요소의 삭제를 지원하고 있어, 대응하는 매핑을 맵으로부터 삭제할 수 있습니다. 삭제는,Iterator.remove,Set.remove,removeAll,retainAll, 및 clear 의 각 오퍼레이션을 통해 실시합니다. Set 는,add 오퍼레이션이나 addAll 오퍼레이션은 지원하고 있습니다.

정의:
인터페이스 Map <K ,V > 내의 entrySet
반환값:
맵에 포함되어 있는 매핑의, 키의 승순에 소트 된 셋트뷰

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