JavaTM Platform
Standard Ed. 6

java.util
클래스 EnumSet<E extends Enum <E>>

java.lang.Object 
  상위를 확장 java.util.AbstractCollection <E>
      상위를 확장 java.util.AbstractSet <E>
          상위를 확장 java.util.EnumSet<E>
모든 구현된 인터페이스:
Serializable , Cloneable , Iterable <E>, Collection <E>, Set <E>


public abstract class EnumSet<E extends Enum <E>>
extends AbstractSet <E>
implements Cloneable , Serializable

enum 형으로 사용하기 위한 특수한 Set 구현입니다. enum 세트내의 요소는 모두, 세트의 작성시에, 지정된 단일의 enum 형으로부터 명시적 또는 암묵적으로 생성될 필요가 있습니다. enum 세트는, 내부에서는 비트 벡터로서 표현됩니다. 이 표현은, 매우 간결하고 효율적입니다. 이 클래스의 조작에 필요한 영역이나 시간은, 종래의 int 베이스의 「비트 플래그」에 대한 고품질 또한 형태 보증된 대체로서 충분히 사용 가능합니다. 인수도 enum 세트이면, 일괄 오퍼레이션 (containsAllretainAll 등)조차 매우 고속으로 실행할 수 있습니다.

iterator 메소드에 의해 반환되는 반복자는, 요소를 「자연 순서」(enum 정수의 선언된 순서)에 따라 횡단(traverse) 합니다. 반환되는 반복자는, 「약일관성」을 보관 유지합니다. 이것들이 ConcurrentModificationException 를 throw 할 것은 없습니다. 또, 반복의 진행중에 실행되는 세트에의 변경의 영향을 표시하는 일도, 비표시로 하는 일도 가능합니다.

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

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

Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));
 

구현상의 주의:기본의 오퍼레이션은 모두 일정시간에 실행됩니다. 이것들은 일반적으로,HashSet 의 대응하는 오퍼레이션보다 쭉 고속 (다만 보증외)에 동작합니다. 인수도 enum 세트이면, 일괄 오퍼레이션조차 일정시간에 실행됩니다.

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

도입된 버젼:
1.5
관련 항목:
EnumMap

메소드의 개요
static
<E extends Enum <E>>
EnumSet <E>
allOf (Class <E> elementType)
          지정된 요소형의 모든 요소를 포함한 enum 세트를 작성합니다.
 EnumSet <E > clone ()
          이 세트의 복제를 돌려줍니다.
static
<E extends Enum <E>>
EnumSet <E>
complementOf (EnumSet <E> s)
          지정된 enum 세트와 같은 요소형을 사용해 enum 세트를 작성합니다.
static
<E extends Enum <E>>
EnumSet <E>
copyOf (Collection <E> c)
          지정된 컬렉션으로부터 초기화된 enum 세트를 작성합니다.
static
<E extends Enum <E>>
EnumSet <E>
copyOf (EnumSet <E> s)
          지정된 enum 세트와 같은 요소형을 사용해, enum 세트를 작성합니다.
static
<E extends Enum <E>>
EnumSet <E>
noneOf (Class <E> elementType)
          지정된 요소형을 사용해 빈 상태(empty)의 enum 세트를 작성합니다.
static
<E extends Enum <E>>
EnumSet <E>
of (E e)
          지정된 요소를 최초로 포함한 enum 세트를 작성합니다.
static
<E extends Enum <E>>
EnumSet <E>
of (E first, E... rest)
          지정된 요소가 최초로 포함되는 enum 세트를 작성합니다.
static
<E extends Enum <E>>
EnumSet <E>
of (E e1, E e2)
          지정된 요소가 최초로 포함되는 enum 세트를 작성합니다.
static
<E extends Enum <E>>
EnumSet <E>
of (E e1, E e2, E e3)
          지정된 요소가 최초로 포함되는 enum 세트를 작성합니다.
static
<E extends Enum <E>>
EnumSet <E>
of (E e1, E e2, E e3, E e4)
          지정된 요소가 최초로 포함되는 enum 세트를 작성합니다.
static
<E extends Enum <E>>
EnumSet <E>
of (E e1, E e2, E e3, E e4, E e5)
          지정된 요소가 최초로 포함되는 enum 세트를 작성합니다.
static
<E extends Enum <E>>
EnumSet <E>
range (E from, E to)
          지정된 2 개의 단 점에 의해 정의되는 범위내의 요소 모든 것을 최초로 포함한 enum 세트를 작성합니다.
 
클래스 java.util. AbstractSet 로부터 상속된 메소드
equals , hashCode , removeAll
 
클래스 java.util. AbstractCollection 로부터 상속된 메소드
add , addAll , clear , contains , containsAll , isEmpty , iterator , remove , retainAll , size , toArray , toArray , toString
 
클래스 java.lang. Object 로부터 상속된 메소드
finalize , getClass , notify , notifyAll , wait , wait , wait
 
인터페이스 java.util. Set 로부터 상속된 메소드
add , addAll , clear , contains , containsAll , isEmpty , iterator , remove , retainAll , size , toArray , toArray
 

메소드의 상세

noneOf

public static <E extends Enum <E>> EnumSet <E> noneOf(Class <E> elementType)
지정된 요소형을 사용해 빈 상태(empty)의 enum 세트를 작성합니다.

파라미터:
elementType - 이 enum 세트용의 요소형의 클래스 객체
예외:
NullPointerException - elementType 가 null 의 경우

allOf

public static <E extends Enum <E>> EnumSet <E> allOf(Class <E> elementType)
지정된 요소형의 모든 요소를 포함한 enum 세트를 작성합니다.

파라미터:
elementType - 이 enum 세트용의 요소형의 클래스 객체
예외:
NullPointerException - elementType 가 null 의 경우

copyOf

public static <E extends Enum <E>> EnumSet <E> copyOf(EnumSet <E> s)
지정된 enum 세트와 같은 요소형을 사용해, enum 세트를 작성합니다. 처음은, 같은 요소를 포함한 enum 세트를 작성합니다 (같은 요소가 존재하는 경우).

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

copyOf

public static <E extends Enum <E>> EnumSet <E> copyOf(Collection <E> c)
지정된 컬렉션으로부터 초기화된 enum 세트를 작성합니다. 지정된 컬렉션이 EnumSet 인스턴스의 경우, 이 정적 팩토리 메소드는 copyOf(EnumSet) 와 같은 동작을 합니다. 그 이외의 경우는, 지정된 컬렉션이 1 개 이상의 요소를 포함하고 있을 필요가 있습니다 (신규 enum 세트의 요소형을 판정하기 위해(때문에)).

파라미터:
c - 이 enum 세트의 초기화원의 컬렉션
예외:
IllegalArgumentException - cEnumSet 인스턴스는 아니고, 요소를 포함하지 않는 경우
NullPointerException - c 가 null 의 경우

complementOf

public static <E extends Enum <E>> EnumSet <E> complementOf(EnumSet <E> s)
지정된 enum 세트와 같은 요소형을 사용해 enum 세트를 작성합니다. 처음은, 지정된 세트에 포함되지 않는 이 형태의 요소를 모두 포함할 수 있습니다.

파라미터:
s - 이 enum 세트의 초기화에 사용하는 보수를 보관 유지하는 enum 세트
예외:
NullPointerException - s 가 null 의 경우

of

public static <E extends Enum <E>> EnumSet <E> of(E e)
지정된 요소를 최초로 포함한 enum 세트를 작성합니다. 이 메소드의 overload는, 1 ~ 5 개의 요소로 enum 세트를 초기화하기 위해서 존재합니다. 6 번째에는 가변 인수 기능을 사용하는 overload를 합니다. 이 overload에서는, 최초로 임의의 수의 요소가 포함된 enum 세트를 작성하기 위해서 실행될 가능성이 있습니다만, 가변 인수를 사용하지 않는 overload보다 저속에 실행되는 경향이 있습니다.

파라미터:
e - 이 세트가 최초로 포함한 요소
반환값:
지정된 요소를 최초로 포함한 enum 세트
예외:
NullPointerException - e 가 null 의 경우

of

public static <E extends Enum <E>> EnumSet <E> of(E e1,
                                                E e2)
지정된 요소가 최초로 포함되는 enum 세트를 작성합니다. 이 메소드의 overload는, 1 ~ 5 개의 요소로 enum 세트를 초기화하기 위해서 존재합니다. 6 번째에는 가변 인수 기능을 사용하는 overload를 합니다. 이 overload에서는, 최초로 임의의 수의 요소가 포함된 enum 세트를 작성하기 위해서 실행될 가능성이 있습니다만, 가변 인수를 사용하지 않는 overload보다 저속에 실행되는 경향이 있습니다.

파라미터:
e1 - 이 세트가 최초로 포함한 요소
e2 - 이 세트가 최초로 포함한 다른 요소
반환값:
지정된 요소를 최초로 포함한 enum 세트
예외:
NullPointerException - 파라미터가 null 의 경우

of

public static <E extends Enum <E>> EnumSet <E> of(E e1,
                                                E e2,
                                                E e3)
지정된 요소가 최초로 포함되는 enum 세트를 작성합니다. 이 메소드의 overload는, 1 ~ 5 개의 요소로 enum 세트를 초기화하기 위해서 존재합니다. 6 번째에는 가변 인수 기능을 사용하는 overload를 합니다. 이 overload에서는, 최초로 임의의 수의 요소가 포함된 enum 세트를 작성하기 위해서 실행될 가능성이 있습니다만, 가변 인수를 사용하지 않는 overload보다 저속에 실행되는 경향이 있습니다.

파라미터:
e1 - 이 세트가 최초로 포함한 요소
e2 - 이 세트가 최초로 포함한 다른 요소
e3 - 이 세트가 최초로 포함한 다른 요소
반환값:
지정된 요소를 최초로 포함한 enum 세트
예외:
NullPointerException - 파라미터가 null 의 경우

of

public static <E extends Enum <E>> EnumSet <E> of(E e1,
                                                E e2,
                                                E e3,
                                                E e4)
지정된 요소가 최초로 포함되는 enum 세트를 작성합니다. 이 메소드의 overload는, 1 ~ 5 개의 요소로 enum 세트를 초기화하기 위해서 존재합니다. 6 번째에는 가변 인수 기능을 사용하는 overload를 합니다. 이 overload에서는, 최초로 임의의 수의 요소가 포함된 enum 세트를 작성하기 위해서 실행될 가능성이 있습니다만, 가변 인수를 사용하지 않는 overload보다 저속에 실행되는 경향이 있습니다.

파라미터:
e1 - 이 세트가 최초로 포함한 요소
e2 - 이 세트가 최초로 포함한 다른 요소
e3 - 이 세트가 최초로 포함한 다른 요소
e4 - 이 세트가 최초로 포함한 다른 요소
반환값:
지정된 요소를 최초로 포함한 enum 세트
예외:
NullPointerException - 파라미터가 null 의 경우

of

public static <E extends Enum <E>> EnumSet <E> of(E e1,
                                                E e2,
                                                E e3,
                                                E e4,
                                                E e5)
지정된 요소가 최초로 포함되는 enum 세트를 작성합니다. 이 메소드의 overload는, 1 ~ 5 개의 요소로 enum 세트를 초기화하기 위해서 존재합니다. 6 번째에는 가변 인수 기능을 사용하는 overload를 합니다. 이 overload에서는, 최초로 임의의 수의 요소가 포함된 enum 세트를 작성하기 위해서 실행될 가능성이 있습니다만, 가변 인수를 사용하지 않는 overload보다 저속에 실행되는 경향이 있습니다.

파라미터:
e1 - 이 세트가 최초로 포함한 요소
e2 - 이 세트가 최초로 포함한 다른 요소
e3 - 이 세트가 최초로 포함한 다른 요소
e4 - 이 세트가 최초로 포함한 다른 요소
e5 - 이 세트가 최초로 포함한 다른 요소
반환값:
지정된 요소를 최초로 포함한 enum 세트
예외:
NullPointerException - 파라미터가 null 의 경우

of

public static <E extends Enum <E>> EnumSet <E> of(E first,
                                                E... rest)
지정된 요소가 최초로 포함되는 enum 세트를 작성합니다. 그 파라미터 리스트가 가변 인수 기능을 사용하는 이 팩토리는, 최초로 임의의 수의 요소를 포함한 enum 세트를 작성하기 위해서 사용되는 경우가 있습니다만, 가변 인수를 사용하지 않는 overload보다 저속에 실행되는 경향이 있습니다.

파라미터:
first - 이 세트가 최초로 포함한 요소
rest - 세트가 최초로 포함한 나머지의 요소
반환값:
지정된 요소를 최초로 포함한 enum 세트
예외:
NullPointerException - 지정된 요소중 한쪽이 null 또는 rest 가 null 의 경우

range

public static <E extends Enum <E>> EnumSet <E> range(E from,
                                                   E to)
지정된 2 개의 단 점에 의해 정의되는 범위내의 요소 모든 것을 최초로 포함한 enum 세트를 작성합니다. 반환되는 세트에는, 단 점자신이 포함됩니다. 이것은, 동일해도 괜찮습니다가, 순서가 흐트러져서는 안됩니다.

파라미터:
from - 범위내의 최초의 요소
to - 범위내의 마지막 요소
반환값:
지정된 2 개의 단 점으로써 정의된 범위내의 모든 요소를 최초로 포함한 enum 세트
예외:
NullPointerException - first 또는 last 가 null 의 경우
IllegalArgumentException - first.compareTo(last) > 0 의 경우

clone

public EnumSet <E > clone()
이 세트의 복제를 돌려줍니다.

오버라이드(override):
클래스 Object 내의 clone
반환값:
이 세트의 카피
관련 항목:
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 도 참조해 주세요.