Hashtable Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями.
[Android.Runtime.Register("java/util/Hashtable", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class Hashtable : Java.Util.Dictionary, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.IMap
[<Android.Runtime.Register("java/util/Hashtable", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type Hashtable = class
inherit Dictionary
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface IMap
- Наследование
- Атрибуты
- Реализации
Комментарии
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. Любой объект, отличныйnull
от объекта, можно использовать в качестве ключа или значения.
Для успешного хранения и извлечения объектов из хэш-сводки объекты, используемые в качестве ключей hashCode
, должны реализовывать метод и equals
метод .
Экземпляр имеет Hashtable
два параметра, влияющие на его производительность: начальная емкость и коэффициент нагрузки. Емкость — это количество контейнеров в хэш-таблице, а начальная емкость — это просто емкость на момент создания хэш-таблицы. Обратите внимание, что хэш-таблица открыта: в случае "столкновения хэшей" в одном контейнере хранится несколько записей, поиск в которых должен выполняться последовательно. Коэффициент нагрузки — это мера того, насколько полно хэш-таблица может получить до автоматического увеличения ее емкости. Параметры начальной емкости и коэффициента нагрузки являются просто указаниями для реализации. Точные сведения о том, когда и вызывается ли метод rehash, зависят от реализации.
Как правило, коэффициент нагрузки по умолчанию (.75) обеспечивает хороший компромисс между временными и временными затратами. Более высокие значения уменьшают затраты на пространство, но увеличивают затраты времени на поиск записи (что отражается в большинстве Hashtable
операций, включая get
и put
).
Начальная емкость определяет компромисс между потраченным пространством и потребностью rehash
в операциях, которые занимают много времени. Операции никогда неrehash
будут выполняться, если начальная емкость превышает максимальное количество записейHashtable
, которые будут содержаться, разделенные на коэффициент нагрузки. Однако установка слишком высокой начальной емкости может пустую трату места.
Если в Hashtable
нужно сделать много записей, создание записи с достаточно большой емкостью может позволить вставлять записи более эффективно, чем выполнять автоматическое повторное хэширование по мере необходимости для увеличения таблицы.
В этом примере создается хэш-сводка чисел. В качестве ключей используются имена чисел:
{@code
Hashtable<String, Integer> numbers
= new Hashtable<String, Integer>();
numbers.put("one", 1);
numbers.put("two", 2);
numbers.put("three", 3);}
Чтобы получить число, используйте следующий код:
{@code
Integer n = numbers.get("two");
if (n != null) {
System.out.println("two = " + n);
}}
Итераторы, возвращаемые методом iterator
коллекций, возвращаемых всеми "методами представления коллекции" этого класса, являются <em>fail-fast</em>: если хэш-таблицы будут структурно изменены в любое время после создания итератора любым способом, кроме собственного метода итератора remove
, итератор вызовет ConcurrentModificationException
исключение . Таким образом, перед лицом параллельного изменения итератор быстро и чисто завершает работу, а не рискует произвольным, недетерминированным поведением в неопределенное время в будущем. Перечисления, возвращаемые методами Hashtable #keys keys
и #elements elements
, являются <неотработоемкими><>. Если хэш-таблице в любое время после создания перечисления изменяется структурно, результаты перечисления не определены.
Обратите внимание, что быстрое поведение итератора не может быть гарантировано, так как в целом невозможно сделать какие-либо жесткие гарантии при наличии несинхронизированных одновременных изменений. Отказоустойчивые итераторы создаются ConcurrentModificationException
на основе наилучших усилий. Поэтому было бы неправильно писать программу, которая зависит от этого исключения из-за его правильности: быстрое поведение итераторов должно использоваться только для обнаружения ошибок.
На платформе Java 2 версии 1.2 этот класс был модернизирован для реализации Map
интерфейса, что сделало его членом
Java Collections Framework. В отличие от новых реализаций коллекции, Hashtable
синхронизируется. Если потокобезопасная реализация не требуется, рекомендуется использовать HashMap
вместо Hashtable
. Если требуется потокобезопасная реализация с высокой степенью параллельности, рекомендуется использовать java.util.concurrent.ConcurrentHashMap
вместо Hashtable
.
Добавлено в версии 1.0.
Документация по Java для java.util.Hashtable
.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.
Конструкторы
Hashtable() |
Создает новую пустую хэш-таблицу с начальной емкостью по умолчанию (11) и коэффициентом нагрузки (0). |
Hashtable(IDictionary) |
Создает новую хэш-схему с теми же сопоставлениями, что и у данной карты. |
Hashtable(Int32) |
Создает новую пустую хэш-строку с указанной начальной емкостью и коэффициентом загрузки по умолчанию (0. |
Hashtable(Int32, Single) |
Создает новую пустую хэш-структуру с указанной начальной емкостью и заданным коэффициентом нагрузки. |
Hashtable(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
Class |
Возвращает класс среды выполнения данного объекта |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
IsEmpty |
Проверяет, сопоставляется ли эта хэш-карта со значениями без ключей. |
JniIdentityHashCode |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
JniPeerMembers |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
PeerReference |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
Clear() |
Очищает хэш-сводку, чтобы она не содержала ключей. |
Clone() |
Создает неглубокую копию этой хэш-сводки. |
Compute(Object, IBiFunction) |
Добавляемое |
ComputeIfAbsent(Object, IFunction) |
Добавляемое |
ComputeIfPresent(Object, IBiFunction) |
Добавляемое |
Contains(Object) |
Проверяет, сопоставляется ли ключ с указанным значением в этой хэш-таблице. |
ContainsKey(Object) |
Проверяет, является ли указанный объект ключом в этой хэш-сводке. |
ContainsValue(Object) |
Возвращает значение true, если эта хэш-таблице сопоставляет один или несколько ключей с этим значением. |
Dispose() |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
Dispose(Boolean) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
Elements() |
Возвращает перечисление значений в этой хэш-таблицы. |
EntrySet() |
Возвращает |
Equals(Object) |
Указывает, равен ли какой-то другой объект этому объекту. (Унаследовано от Object) |
ForEach(IBiConsumer) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
Get(Object) |
Возвращает значение, с которым сопоставляется указанный ключ, или |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
GetOrDefault(Object, Object) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
JavaFinalize() |
Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект . (Унаследовано от Object) |
Keys() |
Возвращает перечисление ключей в этой хэш-статье. |
KeySet() |
|
Merge(Object, Object, IBiFunction) |
Добавляемое |
Notify() |
Пробуждает один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. (Унаследовано от Object) |
Put(Object, Object) |
Сопоставляет указанный |
PutAll(IDictionary) |
Копирует все сопоставления из указанной карты в эту хэш-схему. |
PutIfAbsent(Object, Object) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
Rehash() |
Увеличивает емкость и внутренне реорганизует эту хэш-сводку для более эффективного размещения записей и доступа к ней. |
Remove(Object) |
Удаляет ключ (и соответствующее ему значение) из этой хэш-таблицы. |
Remove(Object, Object) |
Удаляет ключ (и соответствующее ему значение) из этой хэш-таблицы. |
Replace(Object, Object) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
Replace(Object, Object, Object) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
ReplaceAll(IBiFunction) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
Size() |
Возвращает количество ключей в этой хэш-статье. |
ToArray<T>() |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
Values() |
|
Wait() |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.>< (Унаследовано от Object) |
Wait(Int64) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
IJavaPeerable.Finalized() |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
IJavaPeerable.JniManagedPeerState |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от Object) |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверенного средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
GetJniTypeName(IJavaPeerable) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |