Spec-Zone.ru › OpenJDK 17

Класс 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)
Возвращает значение 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()
Возвращает неглубокую копию этой карты перечислений. Сами значения не клонируются.
Overrides:
clone в классе AbstractMap<K extends Enum<K>,V>
Возвращает:
неглубокую копию этой карты перечислений
См. также:
  • Cloneable

© 1993, 2021, 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/17/docs/api/java.base/java/util/EnumMap.html

Spec-Zone.ru

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