Класс 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
public int size()
- Указано в:
-
sizeв интерфейсеMap<K extends Enum<K>,V> - Переопределяет:
-
sizeв классеAbstractMap<K extends Enum<K>,V> - Возвращает:
- количество пар ключ-значение в этой карте
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
public void clear()
- Указано в:
-
clearв интерфейсеMap<K extends Enum<K>,V> - Переопределяет:
-
clearв классеAbstractMap<K extends Enum<K>,V>
keySet
public Set<K> keySet()
Set ключей, содержащихся в этой карте. Возвращаемый набор подчиняется общему контракту, описанному в Map.keySet(). Итератор набора вернёт ключи в их естественном порядке (порядке объявления констант перечисления).- Указано в:
-
keySetв интерфейсеMap<K extends Enum<K>,V> - Переопределяет:
-
keySetв классеAbstractMap<K extends Enum<K>,V> - Возвращает:
- вид набора ключей, содержащихся в этой карте перечислений
values
public Collection<V> values()
Collection значений, содержащихся в этой карте. Возвращаемая коллекция подчиняется общему контракту, описанному в Map.values(). Итератор коллекции вернёт значения в порядке появления соответствующих ключей в карте, то есть в их естественном порядке (порядке объявления констант перечисления).- Указано в:
-
valuesв интерфейсеMap<K extends Enum<K>,V> - Переопределяет:
-
valuesв классеAbstractMap<K extends Enum<K>,V> - Возвращает:
- вид коллекции значений, содержащихся в этой карте
entrySet
public Set<Map.Entry<K,V>> entrySet()
Set сопоставлений, содержащихся в этой карте. Возвращаемый набор подчиняется общему контракту, описанному в Map.keySet(). Итератор набора вернёт сопоставления в порядке появления их ключей в карте, то есть в их естественном порядке (порядке объявления констант перечисления).- Указано в:
-
entrySetв интерфейсеMap<K extends Enum<K>,V> - Возвращает:
- вид набора сопоставлений, содержащихся в этой карте перечислений
equals
public boolean equals(Object o)
true , если данный объект также является картой и две карты представляют одни и те же сопоставления, как указано в контракте Map.equals(Object).- Указано в:
-
equalsв интерфейсеMap<K extends Enum<K>,V> - Переопределяет:
-
equalsв классеAbstractMap<K extends Enum<K>,V> - Параметры:
-
o- объект, подлежащий сравнению на равенство с этой картой - Возвращает:
-
true, если указанный объект равен этой карте - См. также:
hashCode
public int hashCode()
- Определено в:
-
hashCodeв интерфейсеMap<K extends Enum<K>,V> - Переопределяет:
-
hashCodeв классеAbstractMap<K extends Enum<K>,V> - Возвращает:
- значение хэш-кода для этой карты
- См. также:
clone
public EnumMap<K,V> clone()
- Переопределяет:
-
cloneв классеAbstractMap<K extends Enum<K>,V> - Возвращает:
- неглубокую копию этой карты перечислений
- См. также:
© 1993, 2023, 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/21/docs/api/java.base/java/util/EnumMap.html