Set
implementation for use with enum types. All of
the elements in an enum set must come from a single enum type that is
specified, explicitly or implicitly, when the set is created. Enum sets
are represented internally as bit vectors. This representation is
extremely compact and efficient. The space and time performance of this
class should be good enough to allow its use as a high-quality, typesafe
alternative to traditional int
-based "bit flags." Even bulk
operations (such as containsAll
and retainAll
) should
run very quickly if their argument is also an enum set.
The iterator returned by the iterator
method traverses the
elements in their natural order (the order in which the enum
constants are declared). The returned iterator is weakly
consistent: it will never throw ConcurrentModificationException
and it may or may not show the effects of any modifications to the set that
occur while the iteration is in progress.
Null elements are not permitted. Attempts to insert a null element
will throw NullPointerException
. Attempts to test for the
presence of a null element or to remove one will, however, function
properly.
Like most collection implementations, EnumSet
is not
synchronized. If multiple threads access an enum set concurrently, and at
least one of the threads modifies the set, it should be synchronized
externally. This is typically accomplished by synchronizing on some
object that naturally encapsulates the enum set. If no such object exists,
the set should be "wrapped" using the Collections#synchronizedSet
method. This is best done at creation time, to prevent accidental
unsynchronized access:
Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));
Implementation Note
All basic operations execute in constant time.
They are likely (though not guaranteed) to be much faster than their
HashSet
counterparts. Even bulk operations execute in
constant time if their argument is also an enum set.
This class is a member of the Java Collections Framework.
EnumMap
Modifier and Type | Class and Description |
---|---|
private static class | EnumSet.
This class is used to serialize all EnumSet instances, regardless of implementation type. |
Modifier and Type | Field and Description |
---|---|
pack-priv final transient Class | elementType
The class of all the elements of this set. |
private static final long | |
pack-priv final transient Enum | universe
All of the values comprising E. |
Access | Constructor and Description |
---|---|
pack-priv |
Modifier and Type | Method and Description |
---|---|
pack-priv abstract void | addAll()
Adds all of the elements from the appropriate enum type to this enum set, which is empty prior to the call. |
pack-priv abstract void | |
public static < The class of the elements in the set E extends Enum | |
public EnumSet | |
pack-priv abstract void | |
public static < The class of the elements in the enum set E extends Enum | Returns: The complement of the specified set in this setthe enum set from whose complement to initialize this enum set s)Creates an enum set with the same element type as the specified enum set, initially containing all the elements of this type that are not contained in the specified set. |
public static < The class of the elements in the set E extends Enum | |
public static < The class of the elements in the collection E extends Enum | Returns: An enum set initialized from the given collection.the collection from which to initialize this enum set c)Hides java. Creates an enum set initialized from the specified collection. |
private static <E extends Enum | |
public static < The class of the elements in the set E extends Enum | |
public static < The class of the specified element and of the set E extends Enum | Returns: an enum set initially containing the specified elementthe element that this set is to contain initially e)Hides java. Creates an enum set initially containing the specified element. |
public static < The class of the parameter elements and of the set E extends Enum | Returns: an enum set initially containing the specified elementsan element that this set is to contain initially e1, E another element that this set is to contain initially e2)Hides java. Creates an enum set initially containing the specified elements. |
public static < The class of the parameter elements and of the set E extends Enum | Returns: an enum set initially containing the specified elementsan element that this set is to contain initially e1, E another element that this set is to contain initially e2, E another element that this set is to contain initially e3)Hides java. Creates an enum set initially containing the specified elements. |
public static < The class of the parameter elements and of the set E extends Enum | Returns: an enum set initially containing the specified elementsan element that this set is to contain initially e1, E another element that this set is to contain initially e2, E another element that this set is to contain initially e3, E another element that this set is to contain initially e4)Hides java. Creates an enum set initially containing the specified elements. |
public static < The class of the parameter elements and of the set E extends Enum | Returns: an enum set initially containing the specified elementsan element that this set is to contain initially e1, E another element that this set is to contain initially e2, E another element that this set is to contain initially e3, E another element that this set is to contain initially e4, E another element that this set is to contain initially e5)Hides java. Creates an enum set initially containing the specified elements. |
public static < The class of the parameter elements and of the set E extends Enum | Returns: an enum set initially containing the specified elementsan element that the set is to contain initially first, E... the remaining elements the set is to contain initially rest)Hides java. Creates an enum set initially containing the specified elements. |
public static < The class of the parameter elements and of the set E extends Enum | Returns: an enum set initially containing all of the elements in the range defined by the two specified endpointsthe first element in the range from, E the last element in the range to)Creates an enum set initially containing all of the elements in the range defined by the two specified endpoints. |
private void | |
private void | |
pack-priv final void | |
pack-priv Object | Returns: aSerializationProxy
representing the state of this instanceReturns a SerializationProxy representing the state of this instance. |
elementType | back to summary |
---|---|
pack-priv final transient Class<E> elementType The class of all the elements of this set. |
serialVersionUID | back to summary |
---|---|
private static final long serialVersionUID
|
universe | back to summary |
---|---|
pack-priv final transient Enum<?>[] universe All of the values comprising E. (Cached for performance.) |
EnumSet | back to summary |
---|---|
pack-priv EnumSet(Class<E> elementType, Enum<?>[] universe) |
addAll | back to summary |
---|---|
pack-priv abstract void addAll() Adds all of the elements from the appropriate enum type to this enum set, which is empty prior to the call. |
addRange | back to summary |
---|---|
pack-priv abstract void addRange(E from, E to) Adds the specified range to this enum set, which is empty prior to the call. |
allOf | back to summary |
---|---|
public static <E extends Enum Creates an enum set containing all of the elements in the specified element type.
|
clone | back to summary |
---|---|
public EnumSet Overrides java. Returns a copy of this set.
|
complement | back to summary |
---|---|
pack-priv abstract void complement() Complements the contents of this enum set. |
complementOf | back to summary |
---|---|
public static <E extends Enum Creates an enum set with the same element type as the specified enum set, initially containing all the elements of this type that are not contained in the specified set.
|
copyOf | back to summary |
---|---|
public static <E extends Enum Creates an enum set with the same element type as the specified enum set, initially containing the same elements (if any).
|
copyOf | back to summary |
---|---|
public static <E extends Enum Hides java. Creates an enum set initialized from the specified collection. If
the specified collection is an
|
getUniverse | back to summary |
---|---|
private static <E extends Enum Returns all of the values comprising E. The result is uncloned, cached, and shared by all callers. |
noneOf | back to summary |
---|---|
public static <E extends Enum Creates an empty enum set with the specified element type.
|
of | back to summary |
---|---|
public static <E extends Enum Hides java. Creates an enum set initially containing the specified element. Overloadings of this method exist to initialize an enum set with one through five elements. A sixth overloading is provided that uses the varargs feature. This overloading may be used to create an enum set initially containing an arbitrary number of elements, but is likely to run slower than the overloadings that do not use varargs.
|
of | back to summary |
---|---|
public static <E extends Enum Hides java. Creates an enum set initially containing the specified elements. Overloadings of this method exist to initialize an enum set with one through five elements. A sixth overloading is provided that uses the varargs feature. This overloading may be used to create an enum set initially containing an arbitrary number of elements, but is likely to run slower than the overloadings that do not use varargs.
|
of | back to summary |
---|---|
public static <E extends Enum Hides java. Creates an enum set initially containing the specified elements. Overloadings of this method exist to initialize an enum set with one through five elements. A sixth overloading is provided that uses the varargs feature. This overloading may be used to create an enum set initially containing an arbitrary number of elements, but is likely to run slower than the overloadings that do not use varargs.
|
of | back to summary |
---|---|
public static <E extends Enum Hides java. Creates an enum set initially containing the specified elements. Overloadings of this method exist to initialize an enum set with one through five elements. A sixth overloading is provided that uses the varargs feature. This overloading may be used to create an enum set initially containing an arbitrary number of elements, but is likely to run slower than the overloadings that do not use varargs.
|
of | back to summary |
---|---|
public static <E extends Enum Hides java. Creates an enum set initially containing the specified elements. Overloadings of this method exist to initialize an enum set with one through five elements. A sixth overloading is provided that uses the varargs feature. This overloading may be used to create an enum set initially containing an arbitrary number of elements, but is likely to run slower than the overloadings that do not use varargs.
|
of | back to summary |
---|---|
public static <E extends Enum Hides java. Creates an enum set initially containing the specified elements. This factory, whose parameter list uses the varargs feature, may be used to create an enum set initially containing an arbitrary number of elements, but it is likely to run slower than the overloadings that do not use varargs.
|
range | back to summary |
---|---|
public static <E extends Enum Creates an enum set initially containing all of the elements in the range defined by the two specified endpoints. The returned set will contain the endpoints themselves, which may be identical but must not be out of order.
|
readObject | back to summary |
---|---|
private void readObject(ObjectInputStream s) throws InvalidObjectException Throws
|
readObjectNoData | back to summary |
---|---|
private void readObjectNoData() throws InvalidObjectException Throws
|
typeCheck | back to summary |
---|---|
pack-priv final void typeCheck(E e) Throws an exception if e is not of the correct type for this enum set. |
writeReplace | back to summary |
---|---|
pack-priv Object writeReplace() Returns a SerializationProxy representing the state of this instance.
|
Modifier and Type | Field and Description |
---|---|
private final Enum | elements
The elements contained in this enum set. |
private final Class | elementType
The element type of this enum set. |
private static final long | |
private static final Enum |
Access | Constructor and Description |
---|---|
pack-priv |
Modifier and Type | Method and Description |
---|---|
private Object | Returns: aEnumSet object with initial state
held by this proxyReturns an |
elements | back to summary |
---|---|
private final Enum<?>[] elements The elements contained in this enum set. |
elementType | back to summary |
---|---|
private final Class<E> elementType The element type of this enum set. |
serialVersionUID | back to summary |
---|---|
private static final long serialVersionUID
|
ZERO_LENGTH_ENUM_ARRAY | back to summary |
---|---|
private static final Enum<?>[] ZERO_LENGTH_ENUM_ARRAY |
SerializationProxy | back to summary |
---|---|
pack-priv SerializationProxy(EnumSet<E> set) |
readResolve | back to summary |
---|---|
private Object readResolve() Returns an
|