JavaTM Platform
Standard Ed. 6

java.util
클래스 EnumMap<K extends Enum <K>, V>

java.lang.Object 
  상위를 확장 java.util.AbstractMap <K, V>
      상위를 확장 java.util.EnumMap<K, V>
모든 구현된 인터페이스:
Serializable , Cloneable , Map <K, V>


public class EnumMap<K extends Enum <K>, V>
extends AbstractMap <K, V>
implements Serializable , Cloneable

enum 형의 키로 사용하기 위한 특수한 Map 구현입니다. enum 맵내의 키는 모두, 맵의 작성시에, 지정된 단일의 enum 형으로부터 명시적 또는 암묵적으로 생성될 필요가 있습니다. enum 맵은, 내부에서는 배열로서 표현됩니다. 이 표현은, 매우 간결하고 효율적입니다.

enum 맵은, 키의 「자연 순서」(enum 정수의 선언되는 순서)로 관리됩니다. 이것은, 코레크션뷰 (keySet() ,entrySet() , 및 values() )에 의해 반환되는 반복자에게 반영됩니다.

코레크션뷰에 의해 반환되는 반복자는, 「약일관성」을 보관 유지합니다. 이것들이 ConcurrentModificationException 를 throw 할 것은 없습니다. 또, 반복의 진행중에 실행되는 맵에의 변경의 영향을 표시하는 일도, 비표시로 하는 일도 가능합니다.

null 키는 허가되지 않습니다. null 키를 삽입하려고 하면(자),NullPointerException 가 throw 됩니다. 다만, null 키의 존재를 테스트하거나 삭제를 시도하는 경우는 정상적으로 기능합니다. null 치는 지정 가능합니다.

대부분의 컬렉션 구현과 같이,EnumMap 는 동기 되지 않습니다. 복수의 thread가 동시에 enum 맵에 액세스 해, 그러한 thread의 적어도 1 개(살)이 맵을 변경하는 경우에는, 외부에서 동기를 잡을 필요가 있습니다. 일반적으로, 이것은, enum 맵을 자연스럽게 캡슐화하는 몇개의 객체로 동기를 잡는 것에 의해 달성됩니다. 이런 종류의 객체가 없는 경우에는,Collections.synchronizedMap(java.util.Map) 메소드를 사용해 맵을 「랩」할 필요가 있습니다. 이것은, 우발적인 비동기 액세스를 막기 위해서(때문에), 작성시에 실시하는 것이 최적입니다.

Map<EnumKey, V> m
= Collections.synchronizedMap(new EnumMap<EnumKey, V>(...));
 

구현상의 주의:기본의 오퍼레이션은 모두 일정시간에 실행됩니다. 이것들은 일반적으로,HashMap 의 대응하는 오퍼레이션보다 고속으로 동작합니다 (다만 보증외).

이 클래스는,Java Collections Framework 의 멤버입니다.

도입된 버젼:
1.5
관련 항목:
EnumSet , 직렬화 된 형식

상자의 클래스의 개요
 
클래스 java.util. AbstractMap 로부터 상속된 상자의 클래스/인터페이스
AbstractMap.SimpleEntry <K ,V >, AbstractMap.SimpleImmutableEntry <K ,V >
 
인터페이스 java.util. Map 로부터 상속된 상자의 클래스/인터페이스
Map.Entry <K ,V >
 
생성자 의 개요
EnumMap (Class <K > keyType)
          지정된 키의 형태를 사용해 빈 상태(empty)의 enum 맵을 작성합니다.
EnumMap (EnumMap <K ,? extends V > m)
          지정된 enum 맵과 같은 키의 형태를 사용해, enum 맵을 작성합니다.
EnumMap (Map <K ,? extends V > m)
          지정된 맵으로부터 초기화된 enum 맵을 작성합니다.
 
메소드의 개요
 void clear ()
          모든 매핑을 맵으로부터 삭제합니다.
 EnumMap <K ,V > clone ()
          이 enum 맵의 shallow 복사를 돌려줍니다.
 boolean containsKey (Object  key)
          맵이 지정된 키의 매핑을 보관 유지하는 경우에 true 를 돌려줍니다.
 boolean containsValue (Object  value)
          맵이 1 개 또는 복수의 키와 지정된 값을 매핑 하고 있는 경우에 true 를 돌려줍니다.
 Set <Map.Entry <K ,V >> entrySet ()
          이 맵에 포함되는 맵 Set 뷰를 돌려줍니다.
 boolean equals (Object  o)
          지정된 객체가 이 맵과 동일한지 어떤지를 비교합니다.
 V get (Object  key)
          지정된 키가 맵 되고 있는 값을 돌려줍니다.
 Set <K > keySet ()
          이 맵에 포함되는 키 Set 뷰를 돌려줍니다.
 V put (K  key, V  value)
          지정된 값과 지정된 키를 이 맵에 관련짓습니다.
 void putAll (Map <? extends K ,? extends V > m)
          지정된 맵으로부터 모든 매핑을 맵에 카피합니다.
 V remove (Object  key)
          키에 대한 매핑이 있으면, 그 키를 맵으로부터 삭제합니다.
 int size ()
          맵내의 키치 매핑의 수를 돌려줍니다.
 Collection <V > values ()
          이 맵에 포함되는 값 Collection 뷰를 돌려줍니다.
 
클래스 java.util. AbstractMap 로부터 상속된 메소드
hashCode , isEmpty , toString
 
클래스 java.lang. Object 로부터 상속된 메소드
finalize , getClass , notify , notifyAll , wait , wait , wait
 

생성자 의 상세

EnumMap

public EnumMap(Class <K > keyType)
지정된 키의 형태를 사용해 빈 상태(empty)의 enum 맵을 작성합니다.

파라미터:
keyType - 이 enum 맵용의 키형의 클래스 객체
예외:
NullPointerException - keyType 가 null 의 경우

EnumMap

public EnumMap(EnumMap <K ,?  extends V > m)
지정된 enum 맵과 같은 키의 형태를 사용해, enum 맵을 작성합니다. 처음은, 같은 매핑을 포함한 enum 맵을 작성합니다 (같은 매핑이 존재하는 경우).

파라미터:
m - 이 enum 맵의 초기화원의 enum 맵
예외:
NullPointerException - m 가 null 의 경우

EnumMap

public EnumMap(Map <K ,?  extends V > m)
지정된 맵으로부터 초기화된 enum 맵을 작성합니다. 지정된 맵이 EnumMap 인스턴스의 경우, 이 생성자 은 EnumMap(EnumMap) 와 같은 동작을 합니다. 그 이외의 경우는, 지정된 맵이 매핑을 1 개 이상 포함하고 있을 필요가 있습니다 (신규 enum 맵의 키의 형태를 판정하기 위해(때문에)).

파라미터:
m - 이 enum 맵의 초기화원의 맵
예외:
IllegalArgumentException - mEnumMap 인스턴스는 아니고, 매핑을 포함하지 않는 경우
NullPointerException - m 가 null 의 경우
메소드의 상세

size

public int size()
맵내의 키치 매핑의 수를 돌려줍니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 size
오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 size
반환값:
맵내의 키와 값의 매핑의 수

containsValue

public boolean containsValue(Object  value)
맵이 1 개 또는 복수의 키와 지정된 값을 매핑 하고 있는 경우에 true 를 돌려줍니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 containsValue
오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 containsValue
파라미터:
value - 맵에 있을지 어떨지를 판정되는 값
반환값:
이 맵이 1 개 이상의 키를 이 값에 매핑 하는 경우는 true

containsKey

public boolean containsKey(Object  key)
맵이 지정된 키의 매핑을 보관 유지하는 경우에 true 를 돌려줍니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 containsKey
오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 containsKey
파라미터:
key - 맵에 있을지 어떨지가 판정되는 키
반환값:
맵이 지정된 키의 매핑을 보관 유지하는 경우는 true

get

public V  get(Object  key)
지정된 키가 맵 되고 있는 값을 돌려줍니다. 그 키의 매핑이 이 맵에 포함되지 않은 경우는 null 를 돌려줍니다.

즉, 이 메소드는,(key == k) 되는 키 k 로부터 값 v 에의 매핑이 이 맵에 포함되는 경우는 v 를 돌려주어, 그 이외의 경우는 null 를 돌려줍니다. 이러한 매핑이 1 개만 있습니다.

반환값의 null 는, 맵이 키의 매핑을 보관 유지하고 있지 않는 것을 나타낸다고는인가 선. 즉, 맵이 명시적으로 키를 null 에 맵 하는 일도 있습니다. containsKey 오퍼레이션을 사용하면(자), 이 2 개의 경우를 구별할 수 있습니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 get
오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 get
파라미터:
key - 관련지을 수 있었던 값이 반환되는 키
반환값:
지정된 키가 맵 되고 있는 값. 그 키의 매핑이 이 맵에 포함되지 않은 경우는 null

put

public V  put(K  key,
             V  value)
지정된 값과 지정된 키를 이 맵에 관련짓습니다. 맵이 이전에 이 키의 매핑을 보관 유지하고 있었을 경우, 낡은 값을 옮겨놓을 수 있습니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 put
오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 put
파라미터:
key - 지정된 값을 관련지을 수 있는 키
value - 지정된 키에 관련지을 수 있는 값
반환값:
지정된 키에 관련한 낡은 값. 또는, 키의 매핑이 없었던 경우는 null. 반환값 null 는, 맵이 이전에 null 와 지정된 키를 관련짓고 있던 것을 나타내는 경우도 있다
예외:
NullPointerException - 지정된 키가 null 인 경우

remove

public V  remove(Object  key)
키에 대한 매핑이 있으면, 그 키를 맵으로부터 삭제합니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 remove
오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 remove
파라미터:
key - 매핑이 맵으로부터 삭제되는 키
반환값:
지정된 키에 관련한 낡은 값. 또는, 키의 엔트리가 없었던 경우는 null. 반환값 null 는, 맵이 이전에 null 와 지정된 키를 관련짓고 있던 것을 나타내는 경우도 있다

putAll

public void putAll(Map <?  extends K ,?  extends V > m)
지정된 맵으로부터 모든 매핑을 맵에 카피합니다. 이것에 의해, 맵이 지정된 맵내에 현재 있는 키의 모두에 대해서 가지고 있던 매핑을 옮겨놓을 수 있습니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 putAll
오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 putAll
파라미터:
m - 이 맵에 포함되는 매핑
예외:
NullPointerException - 지정된 맵이 null 의 경우, 지정된 맵내의 1 개 또는 복수의 키가 null 가 된다

clear

public void clear()
모든 매핑을 맵으로부터 삭제합니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 clear
오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 clear

keySet

public Set <K > keySet()
이 맵에 포함되는 키 Set 뷰를 돌려줍니다. 반환되는 세트는,Map.keySet() 에 개설되고 있는 범용 규약에 따릅니다. 세트의 반복자는, 자연 순서 (enum 정수의 선언된 순서)에 따라 키를 돌려줍니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 keySet
오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 keySet
반환값:
enum 맵에 포함되는 키의 셋트뷰

values

public Collection <V > values()
이 맵에 포함되는 값 Collection 뷰를 돌려줍니다. 반환되는 컬렉션은,Map.values() 에 개설되고 있는 범용 규약에 따릅니다. 컬렉션의 반복자는, 대응하는 키가 맵내에 표시되는 자연 순서 (enum 정수의 선언된 순서)에 따라 값을 돌려줍니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 values
오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 values
반환값:
맵내에 포함되어 있는 값의 코레크션뷰

entrySet

public Set <Map.Entry <K ,V >> entrySet()
이 맵에 포함되는 맵 Set 뷰를 돌려줍니다. 반환되는 세트는,Map.keySet() 에 개설되고 있는 범용 규약에 따릅니다. 세트의 반복자는, 키가 맵내에 표시되는 자연 순서 (enum 정수의 선언된 순서)에 따라 매핑을 돌려줍니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 entrySet
정의:
클래스 AbstractMap <K extends Enum <K >,V > 내의 entrySet
반환값:
enum 맵에 포함되는 매핑의 셋트뷰

equals

public boolean equals(Object  o)
지정된 객체가 이 맵과 동일한지 어떤지를 비교합니다. 지정된 객체도 맵이며, 2 개의 맵이 Map.equals(Object) 규약으로 지정된 것과 같은 매핑을 나타내는 경우,true 를 돌려줍니다.

정의:
인터페이스 Map <K extends Enum <K >,V > 내의 equals
오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 equals
파라미터:
o - 이 맵과 동일한지 어떤지를 비교하는 객체
반환값:
지정된 객체가 맵과 동일한 경우는 true
관련 항목:
Object.hashCode() , Hashtable

clone

public EnumMap <K ,V > clone()
이 enum 맵의 shallow 복사를 돌려줍니다. 값자신은 복제되지 않습니다.

오버라이드(override):
클래스 AbstractMap <K extends Enum <K >,V > 내의 clone
반환값:
이 enum 맵의 shallow 복사
관련 항목:
Cloneable

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