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 |
Возвращает класс среды выполнения этого |
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() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</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) |
Этот класс реализует хэш-таблицу, которая сопоставляет ключи со значениями. |