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