JavaTM 2 Platform
Standard Ed. 5.0

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 정수의 선언된 순서) 종은 더듬어 갑니다. 리턴된 반복자는 「약일관성」을 보관 유지합니다. 이것들이 ConcurrentModificationException를 Throw 할 것은 없습니다. 또, 반복의 진행중에 실행되는 세트에의 변경의 영향을 표시하는 일도, 비표시로 하는 일도 가능합니다.

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

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


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

구현상의 주의: 기본의 오퍼레이션은 모두 일정시간에 실행됩니다. 이것들은 보통, HashSet 대응하는 오퍼레이션보다 쭉 고속 (다만 보증외)에 동작합니다. 파라미터가 다른 EnumSet 인스턴스이면, addAll()AbstractSet.removeAll(java.util.Collection) 등의 일괄 오퍼레이션조차 일정시간에 실행됩니다.

이 클래스는 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)
          지정된 요소형을 사용해 비어있는 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)
지정된 요소형을 사용해 비어있는 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 번째에는 varargs 기능을 사용하는 overload를 합니다. 이 overload에서는 최초로 임의의 수의 요소가 포함된 enum 세트를 작성하기 위해서 실행될 가능성이 있습니다만, varargs를 사용하지 않는 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 번째에는 varargs 기능을 사용하는 overload를 합니다. 이 overload에서는 최초로 임의의 수의 요소가 포함된 enum 세트를 작성하기 위해서 실행될 가능성이 있습니다만, varargs를 사용하지 않는 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 번째에는 varargs 기능을 사용하는 overload를 합니다. 이 overload에서는 최초로 임의의 수의 요소가 포함된 enum 세트를 작성하기 위해서 실행될 가능성이 있습니다만, varargs를 사용하지 않는 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 번째에는 varargs 기능을 사용하는 overload를 합니다. 이 overload에서는 최초로 임의의 수의 요소가 포함된 enum 세트를 작성하기 위해서 실행될 가능성이 있습니다만, varargs를 사용하지 않는 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 번째에는 varargs 기능을 사용하는 overload를 합니다. 이 overload에서는 최초로 임의의 수의 요소가 포함된 enum 세트를 작성하기 위해서 실행될 가능성이 있습니다만, varargs를 사용하지 않는 overload보다 저속에 실행되는 경향이 있습니다.

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

of

public static <E extends Enum <E>> EnumSet <E> of(E first,
                                                E... rest)
지정된 요소가 최초로 포함되는 enum 세트를 작성합니다. 그 파라미터 리스트가 varargs 기능을 사용하는 이 팩토리는 최초로 임의의 수의 요소를 포함한 enum 세트를 작성하기 위해서 사용되는 경우가 있습니다만, varargs를 사용하지 않는 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 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조하십시오.