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

Возвращает класс среды выполнения данного объекта 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()

Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.><

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

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

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