Spec-Zone.ru › OpenJDK 8

Класс AbstractMap<K,V>

  • java.lang.Object
    • java.util.AbstractMap<K,V>
Параметры типа:
K - тип ключей, поддерживаемых этой картой
V - тип сопоставленных значений
Все реализуемые интерфейсы:
Map<K,V>
Непосредственные известные подклассы:
ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, IdentityHashMap, TreeMap, WeakHashMap

public abstract class AbstractMap<K,V>
extends Object
implements Map<K,V>

Этот класс предоставляет скелетную реализацию интерфейса Map, чтобы минимизировать усилия, требуемые для реализации этого интерфейса.

Для реализации неизменяемой карты программисту необходимо только расширить этот класс и предоставить реализацию метода entrySet, который возвращает вид множества сопоставлений карты. Обычно возвращаемое множество будет, в свою очередь, реализовано на основе AbstractSet. Это множество не должно поддерживать методы add или remove, а его итератор не должен поддерживать метод remove.

Для реализации изменяемой карты программист должен дополнительно переопределить метод put этого класса (который в противном случае выбрасывает UnsupportedOperationException), и итератор, возвращаемый entrySet().iterator(), должен дополнительно реализовать метод remove.

Программист должен обычно предоставлять пустой (без аргументов) и конструктор карты, как это рекомендуется в спецификации интерфейса Map.

Документация для каждого неабстрактного метода в этом классе подробно описывает его реализацию. Каждый из этих методов может быть переопределен, если реализуемая карта допускает более эффективную реализацию.

Этот класс является членом Java Collections Framework.

С:
1.2
См. также:
Map, Collection

Вложенные классы

Модификатор и тип Класс и описание
static class  AbstractMap.SimpleEntry<K,V>

Элемент, сохраняющий ключ и значение.

static class  AbstractMap.SimpleImmutableEntry<K,V>

Элемент, сохраняющий неизменяемый ключ и значение.

Вложенные классы/интерфейсы, унаследованные от интерфейса java.util.Map

Map.Entry<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()

Возвращает Set представление сопоставлений, содержащихся в этой карте.

boolean equals(Object o)

Сравнивает указанный объект с этой картой на равенство.

V get(Object key)

Возвращает значение, которому сопоставлен указанный ключ, или null, если эта карта не содержит сопоставления для ключа.

int hashCode()

Возвращает значение хэш-кода для этой карты.

boolean isEmpty()

Возвращает true, если эта карта не содержит сопоставлений ключ-значение.

Set<K> keySet()

Возвращает Set представление ключей, содержащихся в этой карте.

V put(K key, V value)

Сопоставляет указанное значение с указанным ключом в этой карте (необязательная операция).

void putAll(Map<? extends K,? extends V> m)

Копирует все сопоставления из указанной карты в эту карту (необязательная операция).

V remove(Object key)

Удаляет сопоставление для ключа из этой карты, если оно присутствует (необязательная операция).

int size()

Возвращает количество сопоставлений ключ-значение в этой карте.

String toString()

Возвращает строковое представление этой карты.

Collection<V> values()

Возвращает Collection представление значений, содержащихся в этой карте.

Методы, унаследованные от класса java.lang.Object

finalize, getClass, notify, notifyAll, wait, wait, wait

Методы, унаследованные от интерфейса java.util.Map

compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll

Конструкторы

AbstractMap

protected AbstractMap()

Единственный конструктор. (Для вызова подклассами конструкторов, как правило, неявный).

Методы

size

public int size()

Возвращает количество пар ключ-значение в этой карте. Если карта содержит более Integer.MAX_VALUE элементов, возвращает Integer.MAX_VALUE.

Указано в:
size в интерфейсе Map<K,V>
Требования к реализации:
Эта реализация возвращает entrySet().size().
Возвращает:
количество пар ключ-значение в этой карте

isEmpty

public boolean isEmpty()

Возвращает true, если эта карта не содержит пар ключ-значение.

Указано в:
isEmpty в интерфейсе Map<K,V>
Требования к реализации:
Эта реализация возвращает size() == 0.
Возвращает:
true если эта карта не содержит пар ключ-значение

containsValue

public boolean containsValue(Object value)

Возвращает true если эта карта сопоставляет один или несколько ключей заданному значению. Более формально, возвращает true тогда и только тогда, когда эта карта содержит по меньшей мере одно сопоставление со значением v такое, что (value==null ? v==null : value.equals(v)). Эта операция, вероятно, потребует времени, линейного относительно размера карты, для большинства реализаций интерфейса Map.

Указано в:
containsValue в интерфейсе Map<K,V>
Требования к реализации:
Эта реализация перебирает entrySet() в поисках записи со заданным значением. Если такая запись найдена, возвращается true. Если итерация завершается без нахождения такой записи, возвращается false. Обратите внимание, что эта реализация требует линейного времени, пропорционального размеру карты.
Параметры:
value - значение, присутствие которого в этой карте необходимо проверить
Возвращает:
true если эта карта сопоставляет один или несколько ключей заданному значению
Исключения:
ClassCastException - если значение имеет неподходящий тип для этой карты (необязательно)
NullPointerException - если заданное значение равно null, и эта карта не допускает null-значений (необязательно)

containsKey

public boolean containsKey(Object key)

Возвращает true если эта карта содержит сопоставление для указанного ключа. Более формально, возвращает true тогда и только тогда, когда эта карта содержит сопоставление для ключа k такое, что (key==null ? k==null : key.equals(k)). (Может быть не более одного такого сопоставления.)

Указано в:
containsKey в интерфейсе Map<K,V>
Требования к реализации:
Эта реализация перебирает entrySet() в поисках записи со заданным ключом. Если такая запись найдена, возвращается true. Если итерация завершается без нахождения такой записи, возвращается false. Обратите внимание, что эта реализация требует линейного времени, пропорционального размеру карты; многие реализации переопределят этот метод.
Параметры:
key - ключ, присутствие которого в этой карте необходимо проверить
Возвращает:
true если эта карта содержит сопоставление для указанного ключа
Исключения:
ClassCastException - если ключ имеет неподходящий тип для этой карты (необязательно)
NullPointerException - если указанный ключ равен null, и эта карта не допускает null-ключей (необязательно)

get

public V get(Object key)

Возвращает значение, которому сопоставлен указанный ключ, или null если эта карта не содержит сопоставления для ключа.

Более формально, если эта карта содержит сопоставление из ключа k со значением v такое, что (key==null ? k==null : key.equals(k)), тогда этот метод возвращает v; в противном случае он возвращает null. (Может быть не более одного такого сопоставления.)

Если эта карта допускает null-значения, то возвращаемое значение null не обязательно указывает на то, что карта не содержит сопоставления для ключа; также возможно, что карта явно сопоставляет ключ со значением null. Операция containsKey может быть использована для различения этих двух случаев.

Указано в:
get в интерфейсе Map<K,V>
Требования к реализации:
Эта реализация перебирает entrySet() в поисках записи со заданным ключом. Если такая запись найдена, возвращается значение записи. Если итерация завершается без нахождения такой записи, возвращается null . Обратите внимание, что эта реализация требует линейного времени, пропорционального размеру карты; многие реализации переопределят этот метод.
Параметры:
key - ключ, связанное значение которого требуется вернуть
Возвращает:
значение, которому сопоставлен указанный ключ, или null если эта карта не содержит сопоставления для ключа
Исключения:
ClassCastException - если ключ имеет неподходящий тип для этой карты (необязательно)
NullPointerException - если указанный ключ равен null, и эта карта не допускает null-ключей (необязательно)

put

public V put(K key,
             V value)

Сопоставляет указанное значение с указанным ключом в этой карте (необязательная операция). Если карта ранее содержала сопоставление для ключа, старое значение заменяется указанным значением. (Говорят, что карта m содержит сопоставление для ключа k тогда и только тогда, когда m.containsKey(k) вернёт true.)

Указано в:
put в интерфейсе Map<K,V>
Требования к реализации:
Эта реализация всегда выбрасывает UnsupportedOperationException.
Параметры:
key - ключ, с которым нужно сопоставить указанное значение
value - значение, которое нужно сопоставить с указанным ключом
Возвращает:
предыдущее значение, связанное с key, или null если для key не было сопоставления. (Возвращаемое значение null также может указывать, что карта ранее сопоставила null со значением key, если реализация поддерживает null значения.)
Исключения:
UnsupportedOperationException - если операция put не поддерживается этой картой
ClassCastException - если класс указанного ключа или значения не позволяет его хранение в этой карте
NullPointerException - если указанный ключ или значение равно null, и эта карта не допускает null-ключей или -значений
IllegalArgumentException - если какая-либо характеристика указанного ключа или значения препятствует его хранению в этой карте

remove

public V remove(Object key)

Удаляет сопоставление для ключа из этой карты, если оно присутствует (необязательная операция). Более формально, если эта карта содержит сопоставление из ключа k со значением v такое, что (key==null ? k==null : key.equals(k)), это сопоставление удаляется. (В карте может быть не более одного такого сопоставления.)

Возвращает значение, которое эта карта ранее сопоставила с ключом, или null если в карте не было сопоставления для ключа.

Если эта карта допускает null-значения, то возвращаемое значение null не обязательно указывает на то, что в карте не было сопоставления для ключа; также возможно, что карта явно сопоставила ключ со значением null.

Карта не будет содержать сопоставление для указанного ключа, после возврата вызова.

Указано в:
remove в интерфейсе Map<K,V>
Требования к реализации:
Эта реализация перебирает entrySet() в поисках записи со заданным ключом. Если такая запись найдена, ее значение извлекается с помощью операции getValue, запись удаляется из коллекции (и базовой карты) с помощью операции remove итератора, и сохраненное значение возвращается. Если итерация завершается без нахождения такой записи, возвращается null. Обратите внимание, что эта реализация требует линейного времени, пропорционального размеру карты; многие реализации переопределят этот метод.

Обратите внимание, что эта реализация выбрасывает UnsupportedOperationException если entrySet итератор не поддерживает метод remove и эта карта содержит сопоставление для указанного ключа.

Параметры:
key - ключ, сопоставление которого необходимо удалить из карты
Возвращает:
предыдущее значение, связанное с key, или null если для key не было сопоставления.
Исключения:
UnsupportedOperationException - если операция remove не поддерживается этой картой
ClassCastException - если ключ имеет неподходящий тип для этой карты (необязательно)
NullPointerException - если указанный ключ равен null, и эта карта не допускает null-ключей (необязательно)

putAll

public void putAll(Map<? extends K,? extends V> m)

Копирует все сопоставления из указанной карты в эту карту (необязательная операция). Эффект этого вызова эквивалентен вызову put(k, v) для этой карты один раз для каждого сопоставления ключа k со значением v в указанной карте. Поведение этой операции не определено, если указанная карта изменяется во время выполнения операции.

Определено в:
putAll в интерфейсе Map<K,V>
Требования к реализации:
Данная реализация итерируется по коллекции entrySet() заданного отображения, и вызывает операцию put этого отображения для каждой записи, возвращаемой итерацией.

Обратите внимание, что эта реализация генерирует исключение UnsupportedOperationException, если это отображение не поддерживает операцию put, и заданное отображение не пусто.

Параметры:
m - отображения, которые должны быть сохранены в этом отображении
Исключения:
UnsupportedOperationException - если операция putAll не поддерживается этим отображением
ClassCastException - если класс ключа или значения в указанном отображении препятствует его хранению в этом отображении
NullPointerException - если указанное отображение равно null, или если это отображение не допускает null-ключей или null-значений, а указанное отображение содержит null-ключи или null-значения
IllegalArgumentException - если некоторые свойства ключа или значения в указанном отображении препятствуют его хранению в этом отображении

clear

public void clear()

Удаляет все отображения из этого отображения (дополнительная операция). Отображение будет пустым после возврата этого вызова.

Определено в:
clear в интерфейсе Map<K,V>
Требования к реализации:
Эта реализация вызывает entrySet().clear().

Обратите внимание, что эта реализация генерирует исключение UnsupportedOperationException, если отображение entrySet не поддерживает операцию clear.

Исключения:
UnsupportedOperationException - если операция clear не поддерживается этим отображением

keySet

public Set<K> keySet()

Возвращает представление Set ключей, содержащихся в этом отображении. Множество подкрепляется отображением, поэтому изменения в отображении отражаются в множестве и наоборот. Если отображение изменяется во время итерации по множеству (за исключением собственной операции итератора remove), результаты итерации не определены. Множество поддерживает удаление элементов, что удаляет соответствующее отображение из отображения, через операции Iterator.remove, Set.remove, removeAll, retainAll, и clear. Оно не поддерживает операции add или addAll.

Определено в:
keySet в интерфейсе Map<K,V>
Требования к реализации:
Эта реализация возвращает множество, которое наследуется от AbstractSet. Метод итератора подкласса возвращает "объект-обертку" над итератором entrySet() этого отображения. Метод size делегирует вызов методу size этого отображения, а метод contains делегирует вызов методу containsKey этого отображения.

Множество создаётся в первый раз при вызове этого метода и возвращается во всех последующих вызовах. Синхронизация не выполняется, поэтому существует небольшая вероятность, что несколько вызовов этого метода не вернут одно и то же множество.

Возвращает:
представление множества ключей, содержащихся в этом отображении

values

public Collection<V> values()

Возвращает представление Collection значений, содержащихся в этом отображении. Коллекция подкрепляется отображением, поэтому изменения в отображении отражаются в коллекции и наоборот. Если отображение изменяется во время итерации по коллекции (за исключением собственной операции итератора remove), результаты итерации не определены. Коллекция поддерживает удаление элементов, что удаляет соответствующее отображение из отображения, через операции Iterator.remove, Collection.remove, removeAll, retainAll и clear. Она не поддерживает операции add или addAll.

Определено в:
values в интерфейсе Map<K,V>
Требования к реализации:
Эта реализация возвращает коллекцию, которая наследуется от AbstractCollection. Метод итератора подкласса возвращает "объект-обертку" над итератором entrySet() этого отображения. Метод size делегирует вызов методу size этого отображения, а метод contains делегирует вызов методу containsValue этого отображения.

Коллекция создается в первый раз при вызове этого метода и возвращается во всех последующих вызовах. Синхронизация не выполняется, поэтому существует небольшая вероятность, что несколько вызовов этого метода не вернут одну и ту же коллекцию.

Возвращает:
представление коллекции значений, содержащихся в этом отображении

entrySet

public abstract Set<Map.Entry<K,V>> entrySet()

Описание скопировано из интерфейса: Map

Возвращает представление Set отображений, содержащихся в этом отображении. Множество подкрепляется отображением, поэтому изменения в отображении отражаются в множестве и наоборот. Если отображение изменяется во время итерации по множеству (за исключением собственной операции итератора remove, или операции setValue на записи отображения, возвращённой итератором), результаты итерации не определены. Множество поддерживает удаление элементов, что удаляет соответствующее отображение из отображения, через операции Iterator.remove, Set.remove, removeAll, retainAll и clear. Оно не поддерживает операции add или addAll.

Определено в:
entrySet в интерфейсе Map<K,V>
Возвращает:
представление множества отображений, содержащихся в этом отображении

equals

public boolean equals(Object o)

Сравнивает указанный объект с этим отображением на равенство. Возвращает true, если данный объект также является отображением, и два отображения представляют одни и те же отображения. Более формально, два отображения m1 и m2 представляют одни и те же отображения, если m1.entrySet().equals(m2.entrySet()). Это гарантирует, что метод equals работает корректно в разных реализациях интерфейса Map.

Определено в:
equals в интерфейсе Map<K,V>
Переопределяет:
equals в классе Object
Требования к реализации:
Эта реализация сначала проверяет, является ли указанный объект этим отображением; если да, возвращает true. Затем проверяет, является ли указанный объект отображением с размером, идентичным размеру этого отображения; если нет, возвращает false. Если да, итерируется по коллекции entrySet этого отображения, и проверяет, содержит ли указанное отображение каждое отображение, которое содержит это отображение. Если указанное отображение не содержит такое отображение, возвращается false. Если итерация завершается успешно, возвращается true.
Параметры:
o - объект для сравнения на равенство с этим отображением
Возвращает:
true если указанный объект равен этому отображению
См. также:
Object.hashCode(), HashMap

hashCode

public int hashCode()

Возвращает значение хэш-кода для этого отображения. Хэш-код отображения определяется как сумма хэш-кодов каждой записи в представлении entrySet() отображения. Это гарантирует, что m1.equals(m2) подразумевает, что m1.hashCode()==m2.hashCode() для любых двух отображений m1 и m2, как требуется общим соглашением Object.hashCode().

Определено в:
hashCode в интерфейсе Map<K,V>
Переопределяет:
hashCode в классе Object
Требования к реализации:
Эта реализация итерируется по entrySet(), вызывая hashCode() для каждого элемента (записи) в множестве и суммирует результаты.
Возвращает:
значение хэш-кода для этого отображения
См. также:
Map.Entry.hashCode(), Object.equals(Object), Set.equals(Object)

toString

public String toString()

Возвращает строковое представление этого отображения. Строковое представление состоит из списка пар ключ-значение в порядке, возвращаемом итератором представления entrySet отображения, заключённого в фигурные скобки ("{}"). Смежные отображения разделяются символами ", " (запятая и пробел). Каждая пара ключ-значение отображается как ключ, за которым следует знак равенства ("=") и связанное значение. Ключи и значения преобразуются в строки с помощью String.valueOf(Object).

Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого отображения

clone

protected Object clone()
                throws CloneNotSupportedException

Возвращает поверхностную копию этого экземпляра AbstractMap: сами ключи и значения не клонируются.

Переопределяет:
clone в классе Object
Возвращает:
поверхностную копию этого отображения
Исключения:
CloneNotSupportedException - если класс объекта не поддерживает интерфейс Cloneable. Подклассы, которые переопределяют метод clone, также могут сгенерировать это исключение, чтобы указать, что экземпляр не может быть клонирован.
См. также:
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