Spec-Zone.ru › OpenJDK 17

Класс AbstractMap<K,V>

java.lang.Object
java.util.AbstractMap<K,V>
Type Parameters:
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.

С тех пор:
1.2
См. также:
  • Map
  • Collection

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static class  AbstractMap.SimpleEntry<K,V>
Запись Entry, содержащая ключ и значение.
static class  AbstractMap.SimpleImmutableEntry<K,V>
Неизменяемая запись Entry, содержащая ключ и значение.

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

Map.Entry<K,V>

Краткое описание конструкторов

AbstractMap()
Модификатор Конструктор Описание
protected
Единственный конструктор.

Краткое описание методов

Модификатор и тип Метод Описание
void clear()
Удаляет все сопоставления из этой карты (дополнительная операция).
protected Object clone()
Возвращает неглубокую копию этого экземпляра AbstractMap: сами ключи и значения не клонируются.
boolean containsKey(Object key)
Возвращает true , если эта карта содержит сопоставление для указанного ключа.
boolean containsValue(Object value)
Возвращает true , если эта карта отображает один или несколько ключей на указанное значение.
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, entrySet, 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 , для которого Objects.equals(value, v). Эта операция, вероятно, потребует времени, линейного по размеру отображения для большинства реализаций интерфейса Map.
Указано в:
containsValue в интерфейсе Map<K,V>
Требования к реализации:
Эта реализация перебирает entrySet() , ища запись со значением. Если такая запись найдена, возвращается true. Если итерация завершается без нахождения такой записи, возвращается false. Обратите внимание, что эта реализация требует линейного времени от размера отображения.
Параметры:
value - значение, присутствие которого в этом отображении необходимо проверить
Возвращает:
true , если это отображение сопоставляет один или несколько ключей указанному значению
Выбрасывает:
ClassCastException - если значение неподходящего типа для этого отображения (дополнительное)
NullPointerException - если указанное значение равно null, и это отображение не допускает значений null (дополнительное)

containsKey

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

get

public V get(Object key)
Возвращает значение, которому сопоставлен указанный ключ, или null , если это отображение не содержит отображения для ключа.

Более формально, если это отображение содержит отображение от ключа k до значения v , для которого Objects.equals(key, 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 , для которого Objects.equals(key, 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 в указанной карте. Поведение этой операции не определено, если указанная карта модифицируется во время выполнения операции.
Specified by:
putAll в интерфейсе Map<K,V>
Implementation Requirements:
Эта реализация перебирает коллекцию entrySet() указанной карты и вызывает операцию put этой карты один раз для каждой записи, возвращаемой итерацией.

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

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

clear

public void clear()
Удаляет все сопоставления из этой карты (необязательная операция). Карта будет пустой после возврата этого вызова.
Specified by:
clear в интерфейсе Map<K,V>
Implementation Requirements:
Эта реализация вызывает entrySet().clear().

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

Throws:
UnsupportedOperationException - если операция clear не поддерживается этой картой

keySet

public Set<K> keySet()
Возвращает вид Set ключей, содержащихся в этой карте. Множество поддерживается картой, поэтому изменения в карте отражаются в множестве и наоборот. Если карта изменяется во время итерации по множеству (кроме операции самого итератора remove), результаты итерации не определены. Множество поддерживает удаление элементов, которое удаляет соответствующее сопоставление из карты, посредством операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Оно не поддерживает операции add или addAll.
Specified by:
keySet в интерфейсе Map<K,V>
Implementation Requirements:
Эта реализация возвращает множество, которое наследуется от AbstractSet. Метод итератора подкласса возвращает "объект-оболочку" над итератором entrySet() этой карты. Метод size делегирует метод size этой карты, а метод contains делегирует метод containsKey этой карты.

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

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

values

public Collection<V> values()
Возвращает вид Collection значений, содержащихся в этой карте. Коллекция поддерживается картой, поэтому изменения в карте отражаются в коллекции и наоборот. Если карта изменяется во время итерации по коллекции (кроме операции самого итератора remove), результаты итерации не определены. Коллекция поддерживает удаление элементов, которое удаляет соответствующее сопоставление из карты, посредством операций Iterator.remove, Collection.remove, removeAll, retainAll и clear. Она не поддерживает операции add или addAll.
Specified by:
values в интерфейсе Map<K,V>
Implementation Requirements:
Эта реализация возвращает коллекцию, которая наследуется от AbstractCollection. Метод итератора подкласса возвращает "объект-оболочку" над итератором entrySet() этой карты. Метод size делегирует метод size этой карты, а метод contains делегирует метод containsValue этой карты.

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

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

equals

public boolean equals(Object o)
Сравнивает указанный объект с этой картой на равенство. Возвращает true, если данный объект также является картой и две карты представляют одни и те же сопоставления. Более формально, две карты m1 и m2 представляют одни и те же сопоставления, если m1.entrySet().equals(m2.entrySet()). Это гарантирует, что метод equals работает правильно для различных реализаций интерфейса Map.
Specified by:
equals в интерфейсе Map<K,V>
Overrides:
equals в классе Object
Implementation Requirements:
Эта реализация сначала проверяет, является ли указанный объект этой картой; если да, то возвращает true. Затем она проверяет, является ли указанный объект картой, размер которой совпадает с размером этой карты; если нет, то возвращает false. Если да, то она перебирает коллекцию entrySet этой карты и проверяет, содержит ли указанная карта каждое сопоставление, содержащееся в этой карте. Если указанная карта не содержит такое сопоставление, возвращается false. Если итерация завершается, возвращается true.
Parameters:
o - объект, который необходимо сравнить на равенство с этой картой
Returns:
true если указанный объект равен этой карте
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает хэш-код для этой карты. Хэш-код карты определяется как сумма хэш-кодов каждой записи в представлении entrySet() карты. Это гарантирует, что m1.equals(m2) подразумевает, что m1.hashCode()==m2.hashCode() для любых двух карт m1 и m2, как требуется общим контрактом Object.hashCode().
Specified by:
hashCode в интерфейсе Map<K,V>
Overrides:
hashCode в классе Object
Implementation Requirements:
Эта реализация перебирает entrySet(), вызывая hashCode() для каждого элемента (записи) в множестве и суммируя результаты.
Returns:
значение хэш-кода для этой карты
See Also:
  • Map.Entry.hashCode()
  • Object.equals(Object)
  • Set.equals(Object)

toString

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

clone

protected Object clone() throws CloneNotSupportedException
Возвращает неглубокую копию этого экземпляра AbstractMap: сами ключи и значения не клонируются.
Overrides:
clone в классе Object
Returns:
неглубокая копия этой карты
Throws:
CloneNotSupportedException - если класс объекта не поддерживает интерфейс Cloneable. Подклассы, которые переопределяют метод clone, также могут выбросить это исключение, чтобы указать, что экземпляр не может быть скопирован.
See Also:
  • Cloneable

© 1993, 2021, 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.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/AbstractMap.html

Spec-Zone.ru

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