Язык

HashMap Класс

Определение

Реализация интерфейса на основе Map хэш-таблицы.

[Android.Runtime.Register("java/util/HashMap", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class HashMap : Java.Util.AbstractMap, IDisposable, Java.IO.ISerializable, Java.Lang.ICloneable
[<Android.Runtime.Register("java/util/HashMap", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type HashMap = class
    inherit AbstractMap
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ICloneable
    interface IMap
Наследование
Производный
Атрибуты
Реализации

Комментарии

Реализация интерфейса на основе Map хэш-таблицы. Эта реализация предоставляет все необязательные операции карты и разрешает null значения и null ключ. (Класс HashMap примерно эквивалентен Hashtable, за исключением того, что он несинхронизирован и разрешает значения NULL.) Этот класс не гарантирует порядок карты; В частности, это не гарантирует, что заказ будет оставаться постоянным с течением времени.

Эта реализация обеспечивает производительность постоянного времени для основных операций (get и put), при условии, что хэш-функция распределяет элементы должным образом между контейнерами. Для итерации по представлениям коллекции требуется время, пропорциональное "емкости" HashMap экземпляра (количество контейнеров), а также его размер (количество сопоставлений "ключ-значение"). Таким образом, очень важно не задать начальную емкость слишком высокой (или слишком низкий коэффициент нагрузки), если производительность итерации важна.

Экземпляр имеет два параметра, влияющих HashMap на производительность: начальную емкость и коэффициент загрузки. Емкость — это количество контейнеров в хэш-таблице, а начальная емкость — это просто емкость во время создания хэш-таблицы. Коэффициент нагрузки — это мера того, насколько полная хэш-таблица может получить до автоматического увеличения его емкости. Если число записей в хэш-таблице превышает произведение коэффициента нагрузки и текущей емкости, хэш-таблица перенашивается (то есть внутренние структуры данных перестроены), чтобы хэш-таблица была примерно в два раза больше.

Как правило, коэффициент нагрузки по умолчанию (.75) обеспечивает хороший компромисс между затратами на время и пространство. Более высокие значения снижают затраты на пространство, но увеличивают затраты на поиск (отраженные в большинстве операций HashMap класса, включая get и put). Ожидаемое количество записей в карте и его коэффициент нагрузки следует учитывать при настройке начальной емкости, чтобы свести к минимуму количество операций повторной косой черты. Если начальная емкость превышает максимальное количество записей, разделенных на коэффициент нагрузки, операции повторной косой черты никогда не будут выполняться.

Если в экземпляре HashMap должно храниться множество сопоставлений, создание его с достаточно большой емкостью позволит более эффективно хранить сопоставления, чем позволит выполнять автоматическую перезахватку по мере необходимости для увеличения таблицы. Обратите внимание, что использование нескольких ключей с hashCode() одинаковым способом замедления производительности любой хэш-таблицы. Чтобы повысить эффективность, если ключи имеют Comparableзначение, этот класс может использовать порядок сравнения между ключами, чтобы помочь разорвать связи.

<Обратите>внимание, что эта реализация не синхронизирована.</strong> , если несколько потоков одновременно обращаются к хэш-карте, и по крайней мере один из потоков изменяет схему структурно, она должна быть синхронизирована внешне. (Структурное изменение — это любая операция, которая добавляет или удаляет одно или несколько сопоставлений; простое изменение значения, связанного с ключом, который уже содержит экземпляр, не является структурным изменением.) Обычно это достигается путем синхронизации с некоторым объектом, который естественно инкапсулирует карту.

Если такой объект не существует, карта должна быть "упакована" с помощью Collections#synchronizedMap Collections.synchronizedMap метода. Это лучше всего сделать во время создания, чтобы предотвратить случайный несинхронизированный доступ к карте:

Map m = Collections.synchronizedMap(new HashMap(...));

Итераторы, возвращаемые всеми методами представления коллекции этого класса, завершаются сбоем: если карта структурно изменяется в любое время после создания итератора, в любом случае, за исключением собственного remove метода итератора, итератор вызовет ConcurrentModificationExceptionитератор. Таким образом, перед лицом параллельного изменения итератор завершается сбоем быстро и чисто, а не рискуя произвольным, недетерминированным поведением в будущем.

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

Этот класс является членом Платформы коллекций Java.

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

Java документации по java.util.HashMap.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

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

Имя. Описание
HashMap()

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

HashMap(IDictionary)

Создает новое HashMap с теми же сопоставлениями, что и указанные Map.

HashMap(Int32, Single)

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

HashMap(Int32)

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

HashMap(IntPtr, JniHandleOwnership)

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

Свойства

Имя. Описание
Class

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

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

Дескриптор базового экземпляра Android.

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

Добавление

(Унаследовано от AbstractMap)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

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

Реализация интерфейса на основе Map хэш-таблицы.

(Унаследовано от JavaObject)
JniPeerMembers

Реализация интерфейса на основе Map хэш-таблицы.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

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

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Имя. Описание
Clear()

Добавление

(Унаследовано от AbstractMap)
Clone()

Возвращает неглубокую копию этого HashMap экземпляра: ключи и значения сами не клонируются.

Compute(Object, IBiFunction)

Реализация интерфейса на основе Map хэш-таблицы.

ComputeIfAbsent(Object, IFunction)

Реализация интерфейса на основе Map хэш-таблицы.

ComputeIfPresent(Object, IBiFunction)

Реализация интерфейса на основе Map хэш-таблицы.

Construct(JniObjectReference, JniObjectReferenceOptions)

Реализация интерфейса на основе Map хэш-таблицы.

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

Добавление

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

Добавление

(Унаследовано от AbstractMap)
Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

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

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

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

Реализация интерфейса на основе Map хэш-таблицы.

(Унаследовано от JavaObject)
EntrySet()

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

Equals(Object)

Реализация интерфейса на основе Map хэш-таблицы.

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

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

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

Реализация интерфейса на основе Map хэш-таблицы.

Get(Object)

Добавление

(Унаследовано от AbstractMap)
GetHashCode()

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

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

Реализация интерфейса на основе Map хэш-таблицы.

JavaFinalize()
Устаревшие.

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

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

Добавление

(Унаследовано от AbstractMap)
Merge(Object, Object, IBiFunction)

Реализация интерфейса на основе Map хэш-таблицы.

NewHashMap(Int32)

Реализация интерфейса на основе Map хэш-таблицы.

Notify()

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

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

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

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

Добавление

(Унаследовано от AbstractMap)
PutAll(IDictionary)

Добавление

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

Реализация интерфейса на основе Map хэш-таблицы.

Remove(Object, Object)

Удаляет сопоставление указанного ключа из этой карты при наличии.

Remove(Object)

Добавление

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

Реализация интерфейса на основе Map хэш-таблицы.

Replace(Object, Object)

Реализация интерфейса на основе Map хэш-таблицы.

ReplaceAll(IBiFunction)

Реализация интерфейса на основе Map хэш-таблицы.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Реализация интерфейса на основе Map хэш-таблицы.

(Унаследовано от JavaObject)
Size()

Добавление

(Унаследовано от AbstractMap)
ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

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

Возвращает строковое представление объекта.

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

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

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

Добавление

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

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

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

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

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

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

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

Явные реализации интерфейса

Имя. Описание
IJavaPeerable.Disposed()

Реализация интерфейса на основе Map хэш-таблицы.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Реализация интерфейса на основе Map хэш-таблицы.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Реализация интерфейса на основе Map хэш-таблицы.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Реализация интерфейса на основе Map хэш-таблицы.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Реализация интерфейса на основе Map хэш-таблицы.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Реализация интерфейса на основе Map хэш-таблицы.

(Унаследовано от JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Реализация интерфейса на основе Map хэш-таблицы.

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Реализация интерфейса на основе Map хэш-таблицы.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

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