Spec-Zone.ru › OpenJDK 8

Класс 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>
Унаследованно от:
entrySet в классе AbstractMap<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, 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.

Spec-Zone.ru

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