Класс EnumMap<K extends Enum<K>, V>
- Type Parameters:
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, и они могут или не могут отображать эффекты любых изменений в отображении, которые происходят во время выполнения итерации.
Ключи со значением null запрещены. Попытки вставить ключ со значением null выбросят NullPointerException. Однако попытки проверки наличия ключа со значением null или удаления его будут работать должным образом. Значения со значением null разрешены.
Как и большинство реализаций коллекций, EnumMap не синхронизирована. Если несколько потоков обращаются к отображению перечислений одновременно, и по меньшей мере один из потоков изменяет отображение, оно должно быть синхронизировано внешне. Это обычно достигается путём синхронизации на каком-либо объекте, который естественным образом инкапсулирует отображение перечислений. Если такого объекта нет, отображение должно быть «оборачено» с помощью метода Collections.synchronizedMap(java.util.Map<K, V>). Это лучше всего сделать на этапе создания, чтобы предотвратить случайный несинхронизированный доступ:
Map<EnumKey, V> m
= Collections.synchronizedMap(new EnumMap<EnumKey, V>(...));
Примечание реализации: все базовые операции выполняются за константное время. Они, вероятно (хотя и не гарантировано), будут быстрее, чем их аналоги из HashMap.
Этот класс является членом Java Collections Framework.
- Since:
- 1.5
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.util.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 представление значений, содержащихся в этом отображении. |
Методы, объявленные в классе java.util.AbstractMap
isEmpty, toString
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
Подробное описание конструкторов
EnumMap
public EnumMap(Class<K> keyType)
- Параметры:
-
keyType- объект класса типа ключа для этой карты перечислений - Исключения:
-
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
public int 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/EnumMap.html