Язык

HashSet Класс

Определение

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

Комментарии

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

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

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

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

Set s = Collections.synchronizedSet(new HashSet(...));

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

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

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

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

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

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

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

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

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

HashSet(ICollection)

Создает новый набор, содержащий элементы в указанной коллекции.

HashSet(Int32, Single)

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

HashSet(Int32)

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

HashSet(IntPtr, JniHandleOwnership)

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

Свойства

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

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

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

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

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

Добавление

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

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

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

PeerReference

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

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

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

ThresholdType

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

Методы

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

Добавление

(Унаследовано от AbstractCollection)
AddAll(ICollection)

Добавление

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

Добавление

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

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

Construct(JniObjectReference, JniObjectReferenceOptions)

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

Добавление

(Унаследовано от AbstractCollection)
ContainsAll(ICollection)

Добавление

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

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

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

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

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

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

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

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

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

Возвращает итератор над элементами этого набора.

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

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

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

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

Notify()

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

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

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

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

Добавление

(Унаследовано от AbstractCollection)
RemoveAll(ICollection)

Добавление

(Унаследовано от AbstractCollection)
RetainAll(ICollection)

Добавление

(Унаследовано от AbstractCollection)
SetHandle(IntPtr, JniHandleOwnership)

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

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

Возвращает количество элементов в этом наборе (его кратность).

Spliterator()

< >Создает em late-binding</em> и <em-fail-fast></em>Spliterator для элементов в этом наборе.

ToArray()

Добавление

(Унаследовано от AbstractCollection)
ToArray(Object[])

Добавление

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

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

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

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

JavaAs<TResult>(IJavaPeerable)

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Этот класс реализует Set интерфейс, поддерживаемый хэш-таблицей (фактически экземпляром HashMap ).

ToEnumerable(IIterable)

Возвращает итерацию IEnumerable по JavaIIterable, позволяя foreach использовать LINQ с типами коллекций Java. Каждый элемент маршалируется из своего Java экземпляра в соответствующий управляемый тип.

ToEnumerable<T>(IIterable)

Возвращает итерацию IEnumerable<T> по JavaIIterable, маршалинг каждого элемента Tв . Это позволяет foreach использовать LINQ с типами коллекций Java.

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

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