Spec-Zone .ru
спецификации, руководства, описания, API
|
public class EnumMap<K extends Enum<K>,V> extends AbstractMap<K,V> implements Serializable, Cloneable
Map
реализация для использования с перечислимыми ключами типа. Все ключи в перечислимой карте должны прибыть из единственного перечислимого типа, который определяется, явно или неявно, когда карта создается. Перечислимые карты представляются внутренне как массивы. Это представление чрезвычайно компактно и эффективно. Перечислимые карты сохраняются в естественном порядке их ключей (порядок, в котором перечислимые константы объявляются). Это отражается в iterators, возвращенном представлениями наборов (keySet()
, entrySet()
, и values()
).
Итерэторс, возвращенный представлениями набора, является слабо непротиворечивым: они никогда не будут бросать ConcurrentModificationException
и они могут или, возможно, не показывают эффекты любых модификаций к карте, которые происходят, в то время как итерация происходит.
Нулевые ключи не разрешаются. Попытки вставить нулевой ключ бросят NullPointerException
. Попытки протестировать на присутствие нулевого ключа или удалить каждый будет, однако, функционировать должным образом. Нулевые значения разрешаются.
Как большинство реализаций набора не синхронизируется EnumMap. Если многократные потоки получают доступ к перечислимой карте одновременно, и по крайней мере один из потоков изменяет карту, он должен синхронизироваться внешне. Это обычно выполняется, синхронизируясь на некотором объекте, который естественно инкапсулирует перечислимую карту. Если никакой такой объект не существует, карта должна быть "обернута", используя Collections.synchronizedMap(java.util.Map<K, V>)
метод. Это лучше всего делается во время создания, чтобы предотвратить случайный несинхронизируемый доступ:
Map<EnumKey, V> m = Collections.synchronizedMap(new EnumMap<EnumKey, V>(...));
Примечание реализации: В постоянное время выполняются все основные операции. Они вероятны (хотя не гарантируемый) быть быстрее чем их HashMap
дубликаты.
Этот класс является элементом Платформы Наборов Java.
EnumSet
, Сериализированная ФормаAbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<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()
Возвраты a
Set представление отображений содержится в этой карте. |
boolean |
equals(Object o)
Сравнивает указанный объект с этой картой для равенства.
|
V |
get(Object key)
Возвращает значение, на которое указанный ключ отображается, или
null если эта карта не содержит отображения для ключа. |
int |
hashCode()
Возвращает значение хэш-кода для этой карты.
|
Set<K> |
keySet()
Возвраты a
Set представление ключей содержится в этой карте. |
V |
put(K key, V value)
Связывает указанное значение с указанным ключом в этой карте.
|
void |
putAll(Map<? extends K,? extends V> m)
Копии все отображения от указанной карты до этой карты.
|
V |
remove(Object key)
Удаляет отображение для этого ключа из этой карты если существующий.
|
int |
size()
Возвращает число отображений значения ключа в этой карте.
|
Collection<V> |
values()
Возвраты a
Collection представление значений содержится в этой карте. |
isEmpty, toString
public EnumMap(Class<K> keyType)
keyType
- объект класса ключевого типа для этой перечислимой картыNullPointerException
- если keyType является нулемpublic EnumMap(EnumMap<K,? extends V> m)
m
- перечислимая карта, из которой можно инициализировать эту перечислимую картуNullPointerException
- если m является нулемpublic EnumMap(Map<K,? extends V> m)
EnumMap(EnumMap)
. Иначе, указанная карта должна содержать по крайней мере одно отображение (чтобы определить ключевой тип новой перечислимой карты).m
- карта, из которой можно инициализировать эту перечислимую картуIllegalArgumentException
- если m не является экземпляром EnumMap и не содержит отображенийNullPointerException
- если m является нулемpublic int size()
public boolean containsValue(Object value)
containsValue
в интерфейсе Map<K extends Enum<K>,V>
containsValue
в классе AbstractMap<K extends Enum<K>,V>
value
- значение, присутствие которого в этой карте должно быть протестированоpublic boolean containsKey(Object key)
containsKey
в интерфейсе Map<K extends Enum<K>,V>
containsKey
в классе AbstractMap<K extends Enum<K>,V>
key
- ключ, присутствие которого в этой карте должно быть протестировано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
если эта карта не содержит отображения для ключаpublic V put(K key, V value)
put
в интерфейсе Map<K extends Enum<K>,V>
put
в классе AbstractMap<K extends Enum<K>,V>
key
- ключ, с которым должно быть связано указанное значениеvalue
- значение, которое будет связано с указанным ключомNullPointerException
- если указанный ключ является нулемpublic V remove(Object key)
remove
в интерфейсе Map<K extends Enum<K>,V>
remove
в классе AbstractMap<K extends Enum<K>,V>
key
- ключ, отображение которого должно быть удалено из карты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
- указанная карта является нулем, или если один или более ключей в указанной карте являются нулемpublic void clear()
public Set<K> keySet()
Set
представление ключей содержится в этой карте. Возвращенный набор повинуется общему контракту, обрисованному в общих чертах в Map.keySet()
. iterator набора возвратит ключи в их естественном порядке (порядок, в котором перечислимые константы объявляются).public Collection<V> values()
Collection
представление значений содержится в этой карте. Возвращенный набор повинуется общему контракту, обрисованному в общих чертах в Map.values()
. iterator набора возвратит значения в порядке, их соответствующие ключи появляются в карте, которая является их естественным порядком (порядок, в котором перечислимые константы объявляются).public Set<Map.Entry<K,V>> entrySet()
Set
представление отображений содержится в этой карте. Возвращенный набор повинуется общему контракту, обрисованному в общих чертах в Map.keySet()
. iterator набора возвратит отображения в порядке, их ключи появляются в карте, которая является их естественным порядком (порядок, в котором перечислимые константы объявляются).public boolean equals(Object o)
Map.equals(Object)
контракт.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)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.