Класс EnumMap<K extends Enum<K>, V>
- Параметры типа:
K— тип перечисления ключей, поддерживаемых этой картойV— тип отображаемых значений
- Все реализуемые интерфейсы:
Serializable, Cloneable, Map<K,V>
public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K,V> implements Serializable, Cloneable
Map для использования с ключами типа перечисления. Все ключи в карте перечисления должны принадлежать одному типу перечисления, который задается явно или неявно при создании карты. Внутреннее представление карт перечислений основано на массивах. Такое представление чрезвычайно компактно и эффективно. В картах перечислений ключи упорядочены в соответствии с их естественным порядком (порядком объявления констант перечисления). Это отражается в итераторах, возвращаемых представлениями коллекций (keySet(), entrySet() и values()).
Итераторы, возвращаемые представлениями коллекций, являются слабо согласованными: они никогда не выбрасывают исключение ConcurrentModificationException и могут отражать или не отражать изменения карты, произошедшие во время итерации.
Нулевые ключи не допускаются. Попытка вставить нулевой ключ приведет к выбрасыванию исключения NullPointerException. Однако попытки проверить наличие нулевого ключа или удалить его будут корректно обработаны. Нулевые значения допускаются.
Как и большинство реализаций коллекций, EnumMap не синхронизирована. Если несколько потоков одновременно обращаются к карте перечислений и хотя бы один из них изменяет карту, доступ следует синхронизировать извне. Обычно для этого синхронизируются по объекту, который естественным образом инкапсулирует карту перечислений. Если такого объекта нет, карту следует «обернуть» с помощью метода Collections.synchronizedMap(Map). Лучше всего сделать это при создании карты, чтобы предотвратить случайный несинхронизированный доступ:
Map<EnumKey, V> m
= Collections.synchronizedMap(new EnumMap<EnumKey, V>(...));
Примечание по реализации: все основные операции выполняются за постоянное время. Вероятно (хотя это и не гарантируется), они выполняются быстрее, чем соответствующие операции HashMap.
Этот класс входит в состав Java Collections Framework.
- Начиная с версии:
- 1.5
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе AbstractMap
AbstractMap.SimpleEntry<K, V>, AbstractMap.SimpleImmutableEntry<K, V>
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
EnumMap |
Создает пустую карту перечислений с указанным типом ключа. |
EnumMap |
Создает карту перечислений с тем же типом ключа, что и у указанной карты перечислений, изначально содержащую те же отображения (если они есть). |
EnumMap |
Создает карту перечислений, инициализированную указанной картой. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
clear() |
Удаляет все отображения из этой карты. |
EnumMap |
clone() |
Возвращает поверхностную копию этой карты перечислений. |
boolean |
containsKey |
Возвращает true, если эта карта содержит отображение для указанного ключа. |
boolean |
containsValue |
Возвращает true, если эта карта отображает один или несколько ключей в указанное значение. |
Set |
entrySet() |
Возвращает представление Set отображений, содержащихся в этой карте. |
boolean |
equals |
Сравнивает указанный объект с этой картой на равенство. |
V |
get |
Возвращает значение, которому соответствует указанный ключ, или null, если эта карта не содержит отображения для ключа. |
int |
hashCode() |
Возвращает хеш-код этой карты. |
Set |
keySet() |
Возвращает представление Set ключей, содержащихся в этой карте. |
V |
put |
Связывает указанное значение с указанным ключом в этой карте. |
void |
putAll |
Копирует все отображения из указанной карты в эту карту. |
V |
remove |
Удаляет отображение для этого ключа из этой карты, если оно существует. |
int |
size() |
Возвращает количество отображений ключ-значение в этой карте. |
Collection |
values() |
Возвращает представление Collection значений, содержащихся в этой карте. |
Методы, объявленные в классе AbstractMap
isEmpty, toString
Методы, объявленные в интерфейсе Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
Подробное описание конструкторов
EnumMap
public EnumMap(Class<K> keyType)
- Параметры:
-
keyType— объект Class типа ключа для этой карты перечислений - Исключения:
-
NullPointerException— еслиkeyTypeравен null
EnumMap
public EnumMap(EnumMap<K, ? extends V> m)
- Параметры:
-
m— карта перечислений, из которой инициализируется эта карта перечислений - Исключения:
-
NullPointerException— еслиmравен null
EnumMap
public EnumMap(Map<K, ? extends V> m)
EnumMap, этот конструктор работает так же, как EnumMap(EnumMap). В противном случае указанная карта должна содержать как минимум одно отображение (чтобы определить тип ключа новой карты перечислений).- Параметры:
-
m— карта, из которой инициализируется эта карта перечислений - Исключения:
-
IllegalArgumentException— еслиmне является экземпляромEnumMapи не содержит отображений -
NullPointerException— еслиmравен null
Подробное описание методов
size
containsValue
public boolean containsValue(Object value)
true, если эта карта отображает один или несколько ключей в указанное значение.- Определен в:
-
containsValueв интерфейсеMap<K extends Enum<K>, V> - Переопределен в:
-
containsValueв классеAbstractMap<K extends Enum<K>, V> - Параметры:
-
value— значение, наличие которого в этой карте проверяется - Возвращает:
-
true, если эта карта отображает один или несколько ключей в это значение
containsKey
public boolean containsKey(Object key)
true, если эта карта содержит отображение для указанного ключа.- Определен в:
-
containsKeyв интерфейсеMap<K extends Enum<K>, V> - Переопределен в:
-
containsKeyв классеAbstractMap<K extends Enum<K>, V> - Параметры:
-
key— ключ, наличие которого в этой карте проверяется - Возвращает:
-
true, если эта карта содержит отображение для указанного ключа
get
public V get(Object key)
null, если эта карта не содержит отображения для ключа. Формально, если эта карта содержит отображение от ключа k к значению v такое, что (key == k), этот метод возвращает v; в противном случае он возвращает null. (Такое отображение может быть не более чем одно.)
Возвращаемое значение null не обязательно означает, что карта не содержит отображения для ключа; также возможно, что карта явно отображает ключ в null. Операцию containsKey можно использовать, чтобы различить эти два случая.
- Определен в:
-
getв интерфейсеMap<K extends Enum<K>, V> - Переопределен в:
-
getв классеAbstractMap<K extends Enum<K>, V> - Параметры:
-
key— ключ, связанное значение которого необходимо вернуть - Возвращает:
- значение, которому соответствует указанный ключ, или
null, если эта карта не содержит отображения для ключа
put
public V put(K key, V value)
- Определен в:
-
putв интерфейсеMap<K extends Enum<K>, V> - Переопределен в:
-
putв классеAbstractMap<K extends Enum<K>, V> - Параметры:
-
key— ключ, с которым связывается указанное значение -
value— значение, которое связывается с указанным ключом - Возвращает:
- предыдущее значение, связанное с указанным ключом, или
null, если для ключа не было отображения. (Возвращаемое значениеnullтакже может указывать, что ранее карта связывалаnullс указанным ключом.) - Исключения:
-
NullPointerException— если указанный ключ равен null
remove
public V remove(Object key)
- Определен в:
-
removeв интерфейсеMap<K extends Enum<K>, V> - Переопределен в:
-
removeв классеAbstractMap<K extends Enum<K>, V> - Параметры:
-
key— ключ, отображение для которого удаляется из карты - Возвращает:
- предыдущее значение, связанное с указанным ключом, или
null, если для ключа не было записи. (Возвращаемое значениеnullтакже может указывать, что ранее карта связывалаnullс указанным ключом.)
putAll
public void putAll(Map<? extends K, ? extends V> m)
- Определен в:
-
putAllв интерфейсеMap<K extends Enum<K>, V> - Переопределен в:
-
putAllв классеAbstractMap<K extends Enum<K>, V> - Параметры:
-
m— отображения, которые необходимо сохранить в этой карте - Исключения:
-
NullPointerException— если указанная карта равна null или один либо несколько ее ключей равны null
clear
keySet
public Set<K> keySet()
Set ключей, содержащихся в этой карте. Возвращаемое множество соответствует общему контракту, описанному в Map.keySet(). Итератор множества возвращает ключи в их естественном порядке (порядке объявления констант перечисления).values
public Collection<V> values()
Collection значений, содержащихся в этой карте. Возвращаемая коллекция соответствует общему контракту, описанному в Map.values(). Итератор коллекции возвращает значения в порядке следования соответствующих им ключей в карте, то есть в их естественном порядке (порядке объявления констант перечисления).entrySet
public Set<Map.Entry<K,V>> entrySet()
Set отображений, содержащихся в этой карте. Возвращаемое множество соответствует общему контракту, описанному в Map.keySet(). Итератор множества возвращает отображения в порядке следования их ключей в карте, то есть в их естественном порядке (порядке объявления констант перечисления).equals
public boolean equals(Object o)
true, если указанный объект также является картой и обе карты представляют одни и те же отображения, согласно контракту Map.equals(Object).hashCode
clone
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/EnumMap.html