Spec-Zone.ru › OpenJDK 21

Класс EnumMap<K extends Enum<K>,V>

java.lang.Object
java.util.AbstractMap<K,V>
java.util.EnumMap<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
См. также:
  • 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)
Возвращает true если эта карта содержит отображение для указанного ключа.
boolean containsValue(Object value)
Возвращает true если эта карта отображает один или несколько ключей на указанное значение.
Set<Map.Entry<K,V>> entrySet()
Возвращает Set представление отображений, содержащихся в этой карте.
boolean equals(Object o)
Сравнивает указанный объект с этой картой на равенство.
V get(Object key)
Возвращает значение, которому сопоставлен указанный ключ, или null если эта карта не содержит отображения для ключа.
int hashCode()
Возвращает хэш-код для этой карты.
Set<K> keySet()
Возвращает Set представление ключей, содержащихся в этой карте.
V put(K key, V value)
Связывает указанное значение с указанным ключом в этой карте.
void putAll(Map<? extends K,? extends V> m)
Копирует все отображения из указанной карты в эту карту.
V remove(Object key)
Удаляет отображение для этого ключа из этой карты, если оно присутствует.
int size()
Возвращает количество пар ключ-значение в этой карте.
Collection<V> 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 , если указанный объект равен этой карте
См. также:
  • 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()
Возвращает неглубокую копию этой карты перечислений. Значения сами не клонируются.
Переопределяет:
clone в классе AbstractMap<K extends Enum<K>,V>
Возвращает:
неглубокую копию этой карты перечислений
См. также:
  • Cloneable

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API