Поделиться через


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 на производительность: начальную емкость и коэффициент загрузки. Емкость — это количество контейнеров в хэш-таблице, а начальная емкость — это просто емкость во время создания хэш-таблицы. Обратите внимание, что хэш-таблица открыта: в случае "хэш-столкновения" один контейнер хранит несколько записей, которые должны выполняться последовательно. Коэффициент нагрузки — это мера того, насколько полная хэш-таблица может получить до автоматического увеличения его емкости. Начальные параметры емкости и коэффициента загрузки просто намекают на реализацию. Точные сведения о том, когда и когда вызывается метод повторной косой черты, зависят от реализации.

Как правило, коэффициент загрузки по умолчанию (.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итератор. Таким образом, перед лицом параллельного изменения итератор завершается сбоем быстро и чисто, а не рискуя произвольным, недетерминированным поведением в будущем. Перечисления, возвращаемые хэштеблами и #elements elements методами, не</em>> завершаются сбоем. Если хэштебл #keys keys является <структурно измененным в любое время после создания перечисления, результаты перечисления не определены.

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

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

Платформа коллекций Java. В отличие от новых реализаций коллекции, Hashtable синхронизируется. Если потокобезопасная реализация не требуется, рекомендуется использовать HashMap вместо Hashtableнего. Если требуется реализация с высоким уровнем доступности, безопасная для потоков, рекомендуется использовать java.util.concurrent.ConcurrentHashMap вместо Hashtableнего.

Добавлено в версии 1.0.

Документация по Java для java.util.Hashtable.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

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

Hashtable()

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

Hashtable(IDictionary)

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

Hashtable(Int32)

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

Hashtable(Int32, Single)

Создает новую пустую хэш-строку с указанной начальной емкостью и указанным коэффициентом нагрузки.

Hashtable(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
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()

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

Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
ForEach(IBiConsumer)

Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями.

Get(Object)

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

GetHashCode()

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

(Унаследовано от Object)
GetOrDefault(Object, Object)

Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями.

JavaFinalize()

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Keys()

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

KeySet()

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

Merge(Object, Object, IBiFunction)

Добавление

Notify()

Пробуждение одного потока, ожидающего монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
Put(Object, Object)

Сопоставляет указанный key в этой хэш-таблице указанный value .

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()

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

Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от 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)

Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями.

Применяется к