Spec-Zone.ru › OpenJDK 25

Класс Hashtable<K,V>

java.lang.Object
java.util.Dictionary<K,V>
java.util.Hashtable<K,V>
Параметры типа:
K — тип ключей, хранящихся в этой карте
V — тип сопоставленных значений
Все реализуемые интерфейсы:
Serializable, Cloneable, Map<K,V>
Известные прямые подклассы:
Properties, UIDefaults
public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, Serializable
Этот класс реализует хеш-таблицу, сопоставляющую ключи значениям. В качестве ключа или значения можно использовать любой объект, кроме null.

Для успешного сохранения и извлечения объектов из хеш-таблицы объекты, используемые в качестве ключей, должны реализовывать метод hashCode и метод equals.

Экземпляр Hashtable имеет два параметра, влияющих на его производительность: начальная ёмкость и коэффициент загрузки. Ёмкость — это количество корзин в хеш-таблице, а начальная ёмкость — это просто ёмкость на момент создания хеш-таблицы. Обратите внимание, что хеш-таблица является открытой: в случае «коллизии хешей» в одной корзине хранится несколько записей, которые необходимо искать последовательно. Коэффициент загрузки определяет, насколько заполненной может стать хеш-таблица до автоматического увеличения её ёмкости. Параметры начальной ёмкости и коэффициента загрузки являются лишь рекомендациями для реализации. Точные условия и момент вызова метода rehash зависят от реализации.

Как правило, коэффициент загрузки по умолчанию (.75) обеспечивает хороший компромисс между затратами времени и памяти. Более высокие значения уменьшают накладные расходы памяти, но увеличивают затраты времени на поиск записи (что отражается на большинстве операций Hashtable, включая get и put).

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

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

В этом примере создаётся хеш-таблица чисел. В качестве ключей используются названия чисел:

  Hashtable<String, Integer> numbers
    = new Hashtable<String, Integer>();
  numbers.put("one", 1);
  numbers.put("two", 2);
  numbers.put("three", 3);

Чтобы получить число, используйте следующий код:

  Integer n = numbers.get("two");
  if (n != null) {
    System.out.println("two = " + n);
  }

Итераторы, возвращаемые методом iterator коллекций, возвращаемых всеми «методами представления коллекций» этого класса, являются быстро отказывающими: если после создания итератора структура Hashtable каким-либо образом изменяется, кроме как посредством собственного метода remove итератора, итератор выбрасывает исключение ConcurrentModificationException. Таким образом, при параллельном изменении итератор быстро и корректно завершает работу, не рискуя привести к произвольному недетерминированному поведению в неопределённый момент в будущем. Перечисления, возвращаемые методами keys и elements класса Hashtable, не являются быстро отказывающими: если после создания перечисления структура Hashtable изменяется, результаты перечисления не определены.

Обратите внимание, что гарантировать быстрое завершение работы итератора при ошибке нельзя, поскольку, вообще говоря, невозможно дать какие-либо строгие гарантии при наличии несинхронизированного параллельного изменения. Быстро отказывающие итераторы выбрасывают ConcurrentModificationException по возможности. Поэтому полагаться на это исключение для обеспечения корректности программы неправильно: быстрое завершение работы итераторов при ошибке следует использовать только для обнаружения ошибок.

Начиная с платформы Java 2 v1.2, этот класс был доработан для реализации интерфейса Map, благодаря чему он стал частью Java Collections Framework. В отличие от новых реализаций коллекций, Hashtable является синхронизированным. Если потокобезопасная реализация не требуется, рекомендуется использовать HashMap вместо Hashtable. Если нужна потокобезопасная высокопараллельная реализация, рекомендуется использовать ConcurrentHashMap вместо Hashtable.

Начиная с версии:
1.0
См. также:
  • Object.equals(java.lang.Object)
  • Object.hashCode()
  • rehash()
  • Collection
  • Map
  • HashMap
  • TreeMap
  • Сериализованная форма

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

Конструктор Описание
Hashtable()
Создаёт новую пустую хеш-таблицу с начальной ёмкостью по умолчанию (11) и коэффициентом загрузки (0.75).
Hashtable(int initialCapacity)
Создаёт новую пустую хеш-таблицу с указанной начальной ёмкостью и коэффициентом загрузки по умолчанию (0.75).
Hashtable(int initialCapacity, float loadFactor)
Создаёт новую пустую хеш-таблицу с указанными начальной ёмкостью и коэффициентом загрузки.
Hashtable(Map<? extends K, ? extends V> t)
Создаёт новую хеш-таблицу с теми же соответствиями, что и указанная Map.

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

Модификатор и тип Метод Описание
void clear()
Очищает эту хеш-таблицу, удаляя все ключи.
Object clone()
Создаёт поверхностную копию этой хеш-таблицы.
V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
Пытается вычислить соответствие для указанного ключа и текущего сопоставленного ему значения либо null, если соответствия нет (необязательная операция).
V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
Если указанному ключу ещё не сопоставлено значение (или ему сопоставлено null), пытается вычислить его значение с помощью заданной функции сопоставления и добавляет его в эту карту, если результат не равен null (необязательная операция).
V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
Если для указанного ключа имеется ненулевое значение, пытается вычислить новое соответствие на основе ключа и текущего сопоставленного ему значения (необязательная операция).
boolean contains(Object value)
Проверяет, сопоставлен ли какой-либо ключ с указанным значением в этой хеш-таблице.
boolean containsKey(Object key)
Проверяет, является ли указанный объект ключом в этой хеш-таблице.
boolean containsValue(Object value)
Возвращает true, если эта хеш-таблица сопоставляет один или несколько ключей с этим значением.
Enumeration<V> elements()
Возвращает перечисление значений этой хеш-таблицы.
Set<Map.Entry<K,V>> entrySet()
Возвращает представление содержащихся в этой карте соответствий в виде Set.
boolean equals(Object o)
Сравнивает указанный объект с этой Map на равенство согласно определению интерфейса Map.
V get(Object key)
Возвращает значение, сопоставленное с указанным ключом, или null, если эта карта не содержит соответствия для данного ключа.
int hashCode()
Возвращает хеш-код этой Map согласно определению интерфейса Map.
boolean isEmpty()
Проверяет, сопоставляет ли эта хеш-таблица значениям какие-либо ключи.
Enumeration<K> keys()
Возвращает перечисление ключей этой хеш-таблицы.
Set<K> keySet()
Возвращает представление содержащихся в этой карте ключей в виде Set.
V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
Если указанному ключу ещё не сопоставлено значение или ему сопоставлено null, сопоставляет с ним заданное ненулевое значение (необязательная операция).
V put(K key, V value)
Сопоставляет указанный key с указанным value в этой хеш-таблице.
void putAll(Map<? extends K, ? extends V> t)
Копирует все соответствия из указанной карты в эту хеш-таблицу.
protected void rehash()
Увеличивает ёмкость и внутренне реорганизует эту хеш-таблицу, чтобы обеспечить более эффективное размещение и доступ к её записям.
V remove(Object key)
Удаляет ключ (и соответствующее ему значение) из этой хеш-таблицы.
int size()
Возвращает количество ключей в этой хеш-таблице.
String toString()
Возвращает строковое представление объекта Hashtable в виде набора записей, заключённых в фигурные скобки и разделённых символами ASCII « , » (запятая и пробел).
Collection<V> values()
Возвращает представление содержащихся в этой карте значений в виде Collection.

Методы, объявленные в классе Object

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

Методы, объявленные в интерфейсе Map

forEach, getOrDefault, putIfAbsent, remove, replace, replace, replaceAll

Подробное описание конструкторов

Hashtable

public Hashtable(int initialCapacity, float loadFactor)
Создает новую пустую хеш-таблицу с указанной начальной емкостью и указанным коэффициентом загрузки.
Параметры:
initialCapacity — начальная емкость хеш-таблицы.
loadFactor — коэффициент загрузки хеш-таблицы.
Исключения:
IllegalArgumentException — если начальная емкость меньше нуля или коэффициент загрузки неположителен.

Hashtable

public Hashtable(int initialCapacity)
Создает новую пустую хеш-таблицу с указанной начальной емкостью и коэффициентом загрузки по умолчанию (0.75).
Параметры:
initialCapacity — начальная емкость хеш-таблицы.
Исключения:
IllegalArgumentException — если начальная емкость меньше нуля.

Hashtable

public Hashtable()
Создает новую пустую хеш-таблицу со значениями начальной емкости (11) и коэффициента загрузки (0.75) по умолчанию.

Hashtable

public Hashtable(Map<? extends K, ? extends V> t)
Создает новую хеш-таблицу с теми же отображениями, что и в заданной Map. Хеш-таблица создается с начальной емкостью, достаточной для хранения отображений из заданной Map, и с коэффициентом загрузки по умолчанию (0.75).
Параметры:
t — карта, отображения которой необходимо поместить в эту карту.
Исключения:
NullPointerException — если заданная карта равна null.
Начиная с версии:
1.2

Подробное описание методов

size

public int size()
Возвращает количество ключей в этой хеш-таблице.
Определено в:
size в интерфейсе Map<K,V>
Определено в:
size в классе Dictionary<K,V>
Возвращает:
количество ключей в этой хеш-таблице.

isEmpty

public boolean isEmpty()
Проверяет, сопоставляет ли эта хеш-таблица какие-либо значения ключам.
Определено в:
isEmpty в интерфейсе Map<K,V>
Определено в:
isEmpty в классе Dictionary<K,V>
Возвращает:
true, если эта хеш-таблица не сопоставляет значения никаким ключам; false в противном случае.

keys

public Enumeration<K> keys()
Возвращает перечисление ключей этой хеш-таблицы. Используйте методы Enumeration для возвращенного объекта, чтобы последовательно получать ключи. Если во время перебора ключей структура хеш-таблицы изменится, результаты перебора будут неопределенными.
Определено в:
keys в классе Dictionary<K,V>
Возвращает:
перечисление ключей этой хеш-таблицы.
См. также:
  • Enumeration
  • elements()
  • keySet()
  • Map

elements

public Enumeration<V> elements()
Возвращает перечисление значений этой хеш-таблицы. Используйте методы Enumeration для возвращенного объекта, чтобы последовательно получать элементы. Если во время перебора значений структура хеш-таблицы изменится, результаты перебора будут неопределенными.
Определено в:
elements в классе Dictionary<K,V>
Возвращает:
перечисление значений этой хеш-таблицы.
См. также:
  • Enumeration
  • keys()
  • values()
  • Map

contains

public boolean contains(Object value)
Проверяет, сопоставлен ли какой-либо ключ в этой хеш-таблице указанному значению. Эта операция более затратна, чем метод containsKey.

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

Параметры:
value — значение для поиска
Возвращает:
true тогда и только тогда, когда какой-либо ключ сопоставлен аргументу value в этой хеш-таблице, согласно методу equals; false в противном случае.
Исключения:
NullPointerException — если значение равно null

containsValue

public boolean containsValue(Object value)
Возвращает true, если эта хеш-таблица сопоставляет одно или несколько ключей этому значению.

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

Определено в:
containsValue в интерфейсе Map<K,V>
Параметры:
value — значение, наличие которого в этой хеш-таблице необходимо проверить
Возвращает:
true, если эта карта сопоставляет одно или несколько ключей указанному значению
Исключения:
NullPointerException — если значение равно null
Начиная с версии:
1.2

containsKey

public boolean containsKey(Object key)
Проверяет, является ли указанный объект ключом этой хеш-таблицы.
Определено в:
containsKey в интерфейсе Map<K,V>
Параметры:
key — возможный ключ
Возвращает:
true тогда и только тогда, когда указанный объект является ключом этой хеш-таблицы согласно методу equals; false в противном случае.
Исключения:
NullPointerException — если ключ равен null
См. также:
  • contains(Object)

get

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

Формально, если эта карта содержит отображение ключа k в значение v, такое что (key.equals(k)), этот метод возвращает v; в противном случае он возвращает null. (Такое отображение может быть не более чем одно.)

Определено в:
get в интерфейсе Map<K,V>
Определено в:
get в классе Dictionary<K,V>
Параметры:
key — ключ, значение которого необходимо вернуть
Возвращает:
значение, которому сопоставлен указанный ключ, или null, если эта карта не содержит отображения для ключа
Исключения:
NullPointerException — если указанный ключ равен null
См. также:
  • put(Object, Object)

rehash

protected void rehash()
Увеличивает емкость этой хеш-таблицы и выполняет ее внутреннюю реорганизацию, чтобы обеспечить более эффективное хранение и доступ к ее записям. Этот метод вызывается автоматически, когда количество ключей в хеш-таблице превышает ее емкость с учетом коэффициента загрузки.

put

public V put(K key, V value)
Сопоставляет указанный key указанному value в этой хеш-таблице. Ни ключ, ни значение не могут быть null.

Значение можно получить, вызвав метод get с ключом, равным исходному ключу.

Определено в:
put в интерфейсе Map<K,V>
Определено в:
put в классе Dictionary<K,V>
Параметры:
key — ключ хеш-таблицы
value — значение
Возвращает:
предыдущее значение указанного ключа в этой хеш-таблице или null, если его не было
Исключения:
NullPointerException — если ключ или значение равны null
См. также:
  • Object.equals(Object)
  • get(Object)

remove

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

putAll

public void putAll(Map<? extends K, ? extends V> t)
Копирует все отображения из указанной карты в эту хеш-таблицу. Эти отображения заменят все отображения, которые эта хеш-таблица содержала для ключей, имеющихся в указанной карте.
Определено в:
putAll в интерфейсе Map<K,V>
Параметры:
t — отображения, которые необходимо сохранить в этой карте
Исключения:
NullPointerException — если указанная карта равна null
Начиная с версии:
1.2

clear

public void clear()
Очищает эту хеш-таблицу, удаляя все ключи.
Определено в:
clear в интерфейсе Map<K,V>

clone

public Object clone()
Создает поверхностную копию этой хеш-таблицы. Копируется вся структура самой хеш-таблицы, но ключи и значения не клонируются. Это относительно затратная операция.
Переопределяет:
clone в классе Object
Возвращает:
клон хеш-таблицы
См. также:
  • Cloneable

toString

public String toString()
Возвращает строковое представление этого объекта Hashtable в виде набора записей, заключенных в фигурные скобки и разделенных символами ASCII " , " (запятая и пробел). Каждая запись представляется в виде ключа, знака равенства = и соответствующего элемента; для преобразования ключа и элемента в строки используется метод toString.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этой хеш-таблицы

keySet

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

entrySet

public Set<Map.Entry<K,V>> entrySet()
Возвращает представление отображений, содержащихся в этой карте, в виде Set. Множество поддерживается картой, поэтому изменения карты отражаются в множестве, и наоборот. Если карта изменена во время итерации по множеству (за исключением изменений с помощью собственной операции remove итератора или операции setValue для записи карты, возвращенной итератором), результаты итерации не определены. Множество поддерживает удаление элементов, которое удаляет соответствующее отображение из карты, с помощью операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Операции add и addAll не поддерживаются.
Определено в:
entrySet в интерфейсе Map<K,V>
Возвращает:
представление отображений, содержащихся в этой карте, в виде множества
Начиная с версии:
1.2

values

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

equals

public boolean equals(Object o)
Сравнивает указанный объект Object с этой картой на равенство согласно определению интерфейса Map.
Определено в:
equals в интерфейсе Map<K,V>
Переопределяет:
equals в классе Object
Параметры:
o — объект для сравнения на равенство с этой хеш-таблицей
Возвращает:
true, если указанный объект Object равен этой карте
Начиная с версии:
1.2
См. также:
  • Map.equals(Object)

hashCode

public int hashCode()
Возвращает хеш-код этой карты согласно определению интерфейса Map.
Определено в:
hashCode в интерфейсе Map<K,V>
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этой карты
Начиная с версии:
1.2
См. также:
  • Map.hashCode()

computeIfAbsent

public V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
Если указанному ключу еще не сопоставлено значение (или ему сопоставлено null), пытается вычислить значение с помощью заданной функции отображения и добавить его в эту карту, если результат не равен null (необязательная операция).

Если функция отображения возвращает null, отображение не сохраняется. Если сама функция отображения выбрасывает (непроверяемое) исключение, оно повторно выбрасывается, а отображение не сохраняется. Чаще всего этот метод используется для создания нового объекта в качестве начального сопоставленного значения или мемоизированного результата, например:

map.computeIfAbsent(key, k -> new Value(f(k)));

Или для реализации карты с несколькими значениями, Map<K,Collection<V>>, поддерживающей несколько значений для каждого ключа:

map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);

Во время вычисления функция отображения не должна изменять эту карту.

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

Определено в:
computeIfAbsent в интерфейсе Map<K,V>
Параметры:
key — ключ, с которым необходимо связать указанное значение
mappingFunction — функция отображения для вычисления значения
Возвращает:
текущее (существующее или вычисленное) значение, связанное с указанным ключом, или null, если вычисленное значение равно null
Исключения:
ConcurrentModificationException — если обнаружено, что функция отображения изменила эту карту

computeIfPresent

public V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
Если значение для указанного ключа существует и не равно null, пытается вычислить новое отображение на основе ключа и текущего сопоставленного ему значения (необязательная операция).

Если функция переназначения возвращает null, отображение удаляется. Если сама функция переназначения выбрасывает (непроверяемое) исключение, оно повторно выбрасывается, а текущее отображение остается без изменений.

Во время вычисления функция переназначения не должна изменять эту карту.

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

Определено в:
computeIfPresent в интерфейсе Map<K,V>
Параметры:
key — ключ, с которым необходимо связать указанное значение
remappingFunction — функция переназначения для вычисления значения
Возвращает:
новое значение, связанное с указанным ключом, или null, если такого значения нет
Исключения:
ConcurrentModificationException — если обнаружено, что функция переназначения изменила эту карту

compute

public V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
Пытается вычислить отображение для указанного ключа и текущего сопоставленного ему значения или null, если текущего отображения нет (необязательная операция). Например, чтобы создать или дополнить String msg для сопоставления значения:
map.compute(key, (k, v) -> (v == null) ? msg : v.concat(msg))
(Для этих целей часто удобнее использовать метод merge().)

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

Во время вычисления функция переназначения не должна изменять эту карту.

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

Определено в:
compute в интерфейсе Map<K,V>
Параметры:
key — ключ, с которым необходимо связать указанное значение
remappingFunction — функция переназначения для вычисления значения
Возвращает:
новое значение, связанное с указанным ключом, или null, если такого значения нет
Исключения:
ConcurrentModificationException — если обнаружено, что функция переназначения изменила эту карту

merge

public V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
Если указанному ключу еще не сопоставлено значение или ему сопоставлено значение null, связывает его с заданным ненулевым значением (необязательная операция). В противном случае заменяет связанное значение результатом заданной функции переназначения или удаляет отображение, если результат равен null. Этот метод может быть полезен при объединении нескольких сопоставленных значений для одного ключа. Например, чтобы создать или дополнить String msg для сопоставления значения:
map.merge(key, msg, String::concat)

Если функция переназначения возвращает null, отображение удаляется. Если сама функция переназначения выбрасывает (непроверяемое) исключение, оно повторно выбрасывается, а текущее отображение остается без изменений.

Во время вычисления функция переназначения не должна изменять эту карту.

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

Определено в:
merge в интерфейсе Map<K,V>
Параметры:
key — ключ, с которым необходимо связать результирующее значение
value — ненулевое значение, которое необходимо объединить с существующим значением, связанным с ключом, либо связать с ключом, если существующего значения нет или с ключом связано значение null
remappingFunction — функция переназначения для повторного вычисления значения, если оно имеется
Возвращает:
новое значение, связанное с указанным ключом, или null, если с ключом не связано ни одного значения
Исключения:
ConcurrentModificationException — если обнаружено, что функция переназначения изменила эту карту

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.base/java/util/Hashtable.html

Spec-Zone.ru

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