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.Interop.IJavaPeerable, 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.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
| HashSet() |
Создает новый пустой набор; Резервный |
| HashSet(ICollection) |
Создает новый набор, содержащий элементы в указанной коллекции. |
| HashSet(Int32) |
Создает новый пустой набор; Резервный |
| HashSet(Int32, Single) |
Создает новый пустой набор; Резервный |
| HashSet(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
| Class |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| IsEmpty |
Добавление (Унаследовано от AbstractCollection) |
| JniIdentityHashCode |
Этот класс реализует |
| JniPeerMembers |
Этот класс реализует |
| PeerReference |
Этот класс реализует |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Add(Object) |
Добавление (Унаследовано от AbstractCollection) |
| AddAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
| Clear() |
Добавление (Унаследовано от AbstractCollection) |
| Clone() |
Возвращает неглубокую копию этого |
| Contains(Object) |
Добавление (Унаследовано от AbstractCollection) |
| ContainsAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
| Dispose() |
Этот класс реализует |
| Dispose(Boolean) |
Этот класс реализует |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
| Iterator() |
Возвращает итератор над элементами этого набора. |
| JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| Remove(Object) |
Добавление (Унаследовано от AbstractCollection) |
| RemoveAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
| RetainAll(ICollection) |
Добавление (Унаследовано от AbstractCollection) |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| Size() |
Возвращает количество элементов в этом наборе (его кратность). |
| Spliterator() |
<>Создает em late-binding</em> и <em-fail-fast<>/em> |
| ToArray() |
Добавление (Унаследовано от AbstractCollection) |
| ToArray(Object[]) |
Добавление (Унаследовано от AbstractCollection) |
| ToArray<T>() |
Этот класс реализует |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Этот класс реализует |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
| IJavaPeerable.Disposed() |
Этот класс реализует |
| IJavaPeerable.DisposeUnlessReferenced() |
Этот класс реализует |
| IJavaPeerable.Finalized() |
Этот класс реализует |
| IJavaPeerable.JniManagedPeerState |
Этот класс реализует |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Этот класс реализует |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Этот класс реализует |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Этот класс реализует |
Методы расширения
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Этот класс реализует |
| GetJniTypeName(IJavaPeerable) |
Этот класс реализует |
| ToEnumerable(IIterable) |
Этот класс реализует |
| ToEnumerable<T>(IIterable) |
Этот класс реализует |