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.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итератор. Таким образом, перед лицом параллельного изменения итератор завершается сбоем быстро и чисто, а не рискуя произвольным, недетерминированным поведением в будущем. Перечисления, возвращаемые хэштеблами #keys keys и #elements elements методами, не</em>< завершаются >сбоем. Если хэш-файл структурно изменяется в любое время после создания перечисления, результаты перечисления не определены.
Обратите внимание, что поведение итератора не может быть гарантировано, как правило, невозможно сделать какие-либо жесткие гарантии в присутствии несинхронизированных одновременных изменений. Отработки отказа быстрой итерации создаются ConcurrentModificationException на основе лучших усилий. Поэтому было бы неправильно написать программу, которая зависит от этого исключения для его правильности: поведение итераторов должно использоваться только для обнаружения ошибок.
По состоянию на платформу Java 2 версии 1.2 этот класс был переоборудован для реализации Map интерфейса, что делает его членом
Java Collections Framework. В отличие от новых реализаций коллекции, Hashtable синхронизируется. Если потокобезопасная реализация не требуется, рекомендуется использовать HashMap вместо Hashtableнего. Если требуется реализация с высоким уровнем доступности, безопасная для потоков, рекомендуется использовать java.util.concurrent.ConcurrentHashMap вместо Hashtableнего.
Добавлено в версии 1.0.
Java документации по java.util.Hashtable.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя. | Описание |
|---|---|
| Hashtable() |
Создает новую пустую хэш-таблицу с начальной емкостью по умолчанию (11) и коэффициентом загрузки (0). |
| Hashtable(IDictionary) |
Создает новую хэш-таблицы с теми же сопоставлениями, что и данная карта. |
| Hashtable(Int32, Single) |
Создает новую пустую хэш-строку с указанной начальной емкостью и указанным коэффициентом нагрузки. |
| Hashtable(Int32) |
Создает новую пустую хэш-строку с указанной начальной емкостью и коэффициентом загрузки по умолчанию (0). |
| Hashtable(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
| Имя. | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| IsEmpty |
Проверяет, сопоставляется ли этот хэш-файл без ключей со значениями. |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от JavaObject) |
| JniPeerMembers |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Имя. | Описание |
|---|---|
| Clear() |
Очищает этот хэш-файл таким образом, чтобы он не содержал ключей. |
| Clone() |
Создает неглубокую копию этого хэш-файла. |
| Compute(Object, IBiFunction) |
Добавление |
| ComputeIfAbsent(Object, IFunction) |
Добавление |
| ComputeIfPresent(Object, IBiFunction) |
Добавление |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от JavaObject) |
| Contains(Object) |
Проверяет, сопоставляется ли некоторые ключи с указанным значением в этом хэш-таблице. |
| ContainsKey(Object) |
Проверяет, является ли указанный объект ключом в этом хэш-файле. |
| ContainsValue(Object) |
Возвращает значение true, если этот хэш-файл сопоставляет один или несколько ключей с этим значением. |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от JavaObject) |
| Elements() |
Возвращает перечисление значений в этой хэш-таблицы. |
| EntrySet() |
|
| Equals(Object) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от JavaObject) |
| 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, Object) |
Удаляет ключ (и соответствующее значение) из этой хэш-таблицы. |
| Remove(Object) |
Удаляет ключ (и соответствующее значение) из этой хэш-таблицы. |
| Replace(Object, Object, Object) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
| Replace(Object, Object) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
| ReplaceAll(IBiFunction) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от JavaObject) |
| Size() |
Возвращает количество ключей в этой хэш-записи. |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Values() |
|
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.> (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя. | Описание |
|---|---|
| IJavaPeerable.Disposed() |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от JavaObject) |
| IJavaPeerable.Finalized() |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. (Унаследовано от JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |