Spec-Zone .ru
спецификации, руководства, описания, API
|
K
- тип ключей сохраняется этой картойV
- тип отображенных значенийpublic interface Map<K,V>
Этот интерфейс берет место класса Dictionary, который был полностью абстрактным классом, а не интерфейсом.
Интерфейс Map обеспечивает три представления набора, которые позволяют содержанию карты просматриваться как ряд ключей, набора значений, или набора отображений значения ключа. Порядок карты определяется как порядок, в котором iterators на представлениях набора карты возвращают свои элементы. Некоторые реализации карты, как класс TreeMap, делают определенные гарантии относительно их порядка; другие, как класс HashMap, не делают.
Отметьте: большая забота должна быть осуществлена, если изменчивые объекты используются в качестве ключей карты. Поведение карты не определяется, если значение объекта изменяется способом, который влияет на сравнения equals, в то время как объект является ключом в карте. Особый случай этого запрета - то, что не допустимо для карты содержать себя как ключ. В то время как допустимо для карты содержать себя как значение, экстремальное предостережение советуется: методы equals И hashCode больше не четко определены на такой карте.
Все классы реализации карты общего назначения должны предоставить двум "стандартным" конструкторам: пустота (никакие параметры) конструктор, который создает пустую карту, и конструктора с единственным параметром типа Map, который создает новую карту с теми же самыми отображениями значения ключа как его параметр. В действительности последний конструктор позволяет пользователю копировать любую карту, производя эквивалентную карту требуемого класса. Нет никакого способа осуществить эту рекомендацию (поскольку интерфейсы не могут содержать конструкторов), но все реализации карты общего назначения в JDK подчиняются.
"Разрушительные" методы, содержавшиеся в этом интерфейсе, то есть, методы, которые изменяют карту, на которой они работают, определяются, чтобы бросить UnsupportedOperationException, если эта карта не поддерживает работу. Если это верно, эти методы, но не обязаны, может бросить UnsupportedOperationException, если вызов не имел бы никакого эффекта на карту. Например, вызов putAll(Map)
метод на неподдающейся изменению карте, но не обязан, может выдать исключение, если карта, отображения которой должны быть "наложены", пуста.
У некоторых реализаций карты есть ограничения на ключи и значения, которые они могут содержать. Например, некоторые реализации запрещают нулевые ключи и значения, и у некоторых есть ограничения на типы их ключей. Попытка вставить неподходящий ключ или значение выдает исключение непроверенное, обычно NullPointerException или ClassCastException. Попытка запросить присутствие неподходящего ключа или значения может выдать исключение, или это может просто возвратить false; некоторые реализации покажут прежнее поведение, и некоторые покажут последнего. Более широко попытка работы на неподходящем ключе или значении, завершение которого не привело бы к вставке неподходящего элемента в карту, может выдать исключение, или это может успешно выполниться в опции реализации. Такие исключения отмечаются как "дополнительные" в спецификации для этого интерфейса.
Этот интерфейс является элементом Платформы Наборов Java.
Много методов в интерфейсах Платформы Наборов определяются с точки зрения equals
метод. Например, спецификация для containsKey(Object key)
метод говорит: "возвраты true, если и только если эта карта содержит отображение для ключа k так, что (key==null ? k==null : key.equals(k))." Эта спецификация не должна быть рассмотрена, чтобы подразумевать, что, вызывая Map.containsKey с ненулевым параметром key заставит key.equals(k) быть вызванным для любого ключа k. Реализации свободны реализовать оптимизацию, посредством чего вызова equals избегает, например, первое сравнение хэш-кодов этих двух ключей. ( Object.hashCode()
спецификация гарантирует, что два объекта с неравными хэш-кодами не могут быть равными.) Более широко реализации различных интерфейсов Платформы Наборов свободны использовать в своих интересах указанное поведение базовых Object
методы везде, где конструктор считает это соответствующим.
Модификатор и Тип | Интерфейс и Описание |
---|---|
static interface |
Map.Entry<K,V>
Запись карты (пара ключ/значение).
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
clear()
Удаляет все отображения из этой карты (дополнительная работа).
|
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()
Возвращает значение хэш-кода для этой карты.
|
boolean |
isEmpty()
true возвратов, если эта карта не содержит отображений значения ключа.
|
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 представление значений содержится в этой карте. |
int size()
boolean isEmpty()
boolean containsKey(Object key)
key
- манипулируйте, чье присутствие в этой карте должно быть протестированоClassCastException
- если ключ имеет несоответствующий тип для этой (дополнительной) картыNullPointerException
- если указанный ключ является нулем, и эта карта не разрешает нулевые (дополнительные) ключиboolean containsValue(Object value)
value
- оцените, чье присутствие в этой карте должно быть протестированоClassCastException
- если значение имеет несоответствующий тип для этой (дополнительной) картыNullPointerException
- если указанное значение является нулем, и эта карта не разрешает (дополнительные) нулевые значенияV get(Object key)
null
если эта карта не содержит отображения для ключа. Более формально, если эта карта содержит отображение от ключа k
к значению v
так, что (key==null ? k==null : key.equals(k))
, тогда этот метод возвраты v
; иначе это возвращается null
. (Может быть самое большее одно такое отображение.)
Если эта карта разрешает нулевые значения, то возвращаемое значение null
не обязательно указывает, что карта не содержит отображения для ключа; также возможно, что карта явно отображает ключ на null
. containsKey
работа может использоваться, чтобы отличить эти два случая.
key
- ключ, присваиваемое значение которого должно быть возвращеноnull
если эта карта не содержит отображения для ключаClassCastException
- если ключ имеет несоответствующий тип для этой (дополнительной) картыNullPointerException
- если указанный ключ является нулем, и эта карта не разрешает нулевые (дополнительные) ключиV put(K key, V value)
m.containsKey(k)
возвратил бы true.)key
- ключ, с которым должно быть связано указанное значениеvalue
- значение, которое будет связано с указанным ключомUnsupportedOperationException
- если работа put не поддерживается этой картойClassCastException
- если класс указанного ключа или значения препятствует тому, чтобы это было сохранено в этой картеNullPointerException
- если указанный ключ или значение являются нулем, и эта карта не разрешает нулевые ключи или значенияIllegalArgumentException
- если некоторое свойство указанного ключа или значения препятствует тому, чтобы это было сохранено в этой картеV remove(Object key)
(key==null ? k==null : key.equals(k))
, то отображение удаляется. (Карта может содержать самое большее одно такое отображение.) Возвращает значение который эта карта, ранее связанная ключ, или null если карта, содержавшая никакое отображение для ключа.
Если эта карта разрешает нулевые значения, то возвращаемое значение null не обязательно указывает что карта, содержавшая никакое отображение для ключа; также возможно что карта, явно отображенная ключ на null.
Карта не будет содержать отображение для указанного ключа, как только вызов возвращается.
key
- манипулируйте, чье отображение должно быть удалено из картыUnsupportedOperationException
- если работа remove не поддерживается этой картойClassCastException
- если ключ имеет несоответствующий тип для этой (дополнительной) картыNullPointerException
- если указанный ключ является нулем, и эта карта не разрешает нулевые (дополнительные) ключиvoid putAll(Map<? extends K,? extends V> m)
put(k, v)
на этой карте однажды для каждого отображения от ключа k, чтобы оценить v в указанной карте. Поведение этой работы неопределено, если указанная карта изменяется, в то время как работа происходит.m
- отображения, которые будут сохранены в этой картеUnsupportedOperationException
- если работа putAll не поддерживается этой картойClassCastException
- если класс ключа или значения в указанной карте препятствует тому, чтобы это было сохранено в этой картеNullPointerException
- если указанная карта является нулем, или если эта карта не разрешает нулевые ключи или значения, и указанная карта содержит нулевые ключи или значенияIllegalArgumentException
- если некоторое свойство ключа или значения в указанной карте препятствует тому, чтобы это было сохранено в этой картеvoid clear()
UnsupportedOperationException
- если работа clear не поддерживается этой картойSet<K> keySet()
Set
представление ключей содержится в этой карте. Набор поддерживается картой, так изменения к карте отражаются в наборе, и наоборот. Если карта изменяется, в то время как итерация по набору происходит (кроме через собственную работу remove iterator), результаты итерации неопределены. Набор поддерживает удаление элемента, которое удаляет соответствующее отображение из карты, через Iterator.remove, Set.remove, removeAll, retainAll, и операции clear. Это не поддерживает операции addAll или add.Collection<V> values()
Collection
представление значений содержится в этой карте. Набор поддерживается картой, так изменения к карте отражаются в наборе, и наоборот. Если карта изменяется, в то время как итерация по набору происходит (кроме через собственную работу remove iterator), результаты итерации неопределены. Набор поддерживает удаление элемента, которое удаляет соответствующее отображение из карты, через Iterator.remove, Collection.remove, removeAll, retainAll и операции clear. Это не поддерживает операции addAll или add.Set<Map.Entry<K,V>> entrySet()
Set
представление отображений содержится в этой карте. Набор поддерживается картой, так изменения к карте отражаются в наборе, и наоборот. Если карта изменяется, в то время как итерация по набору происходит (кроме через собственную работу remove iterator, или через работу setValue на записи карты, возвращенной iterator), результаты итерации неопределены. Набор поддерживает удаление элемента, которое удаляет соответствующее отображение из карты, через Iterator.remove, Set.remove, removeAll, retainAll и операции clear. Это не поддерживает операции addAll или add.boolean equals(Object o)
equals
в классе Object
o
- объект, который будет сравнен для равенства с этой картойObject.hashCode()
, HashMap
int hashCode()
Object.hashCode()
.hashCode
в классе Object
Map.Entry.hashCode()
, Object.equals(Object)
, equals(Object)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.