Класс EnumMap<K extends Enum<K>,V>
- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- java.util.EnumMap<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.
- С момента:
- 1.5
- См. также:
-
EnumSet, Сериализованная форма
Вложенные классы
Вложенные классы/интерфейсы, объявленные в классе java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V> Вложенные классы/интерфейсы, объявленные в интерфейсе java.util.Map
Map.Entry<K,V> Конструкторы
| Конструктор | Описание |
|---|---|
EnumMap(Class<K> keyType) | Создаёт пустое отображение перечислений с указанным типом ключа. |
EnumMap(EnumMap<K,? extends V> m) | Создаёт отображение перечислений с тем же типом ключа, что и указанное отображение перечислений, изначально содержащее те же сопоставления (если таковые имеются). |
EnumMap(Map<K,? extends V> m) | Создаёт отображение перечислений, инициализированное из указанного отображения. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | clear() | Удаляет все сопоставления из этого отображения. |
EnumMap<K,V> | clone() | Возвращает неглубокую копию этого отображения перечислений. |
boolean | containsKey(Object key) | Возвращает |
boolean | containsValue(Object value) | Возвращает |
Set<Map.Entry<K,V>> | entrySet() | Возвращает |
boolean | equals(Object o) | Сравнивает указанный объект с этим отображением на предмет равенства. |
V | get(Object key) | Возвращает значение, которому сопоставлен указанный ключ, или |
int | hashCode() | Возвращает значение хэш-кода для этого отображения. |
Set<K> | keySet() | Возвращает |
V | put(K key,
V value) | Сопоставляет указанное значение с указанным ключом в этом отображении. |
void | putAll(Map<? extends K,? extends V> m) | Копирует все сопоставления из указанного отображения в это отображение. |
V | remove(Object key) | Удаляет сопоставление для этого ключа из этого отображения, если оно присутствует. |
int | size() | Возвращает количество пар ключ-значение в этом отображении. |
Collection<V> | values() | Возвращает |
Методы, объявленные в классе 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, если указанный объект равен этой карте - См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Возвращает значение хэш-кода для этой карты. Хэш-код карты определяется как сумма хэш-кодов каждой записи в карте.
- Определено в:
-
hashCodeв интерфейсеMap<K extends Enum<K>,V> - Переопределяет:
-
hashCodeв классеAbstractMap<K extends Enum<K>,V> - Возвращает:
- значение хэш-кода для этой карты
- См. также:
-
Map.Entry.hashCode(),Object.equals(Object),Set.equals(Object)
clone
public EnumMap<K,V> clone()
Возвращает поверхностную копию этой карты перечислений. Сами значения не клонируются.
© 1993, 2020, 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/11/docs/api/java.base/java/util/EnumMap.html