Spec-Zone .ru
спецификации, руководства, описания, API
|
E
- тип элементов сохраняется этим наборомpublic class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable
Этот class предлагает постоянную производительность времени для основных операций (add, remove, contains и size), предполагая, что хеш-функция рассеивает элементы должным образом среди блоков. Итерация по этому набору требует времени, пропорционального сумме размера экземпляра HashSet (число элементов) плюс "емкость" отступающего экземпляра HashMap (число блоков). Таким образом очень важно не установить начальную емкость слишком высоко (или коэффициент загрузки слишком низко), если итеративная производительность важна.
Отметьте, что эта реализация не синхронизируется. Если многократные потоки получают доступ к набору хеша одновременно, и по крайней мере один из потоков изменяет набор, он должен синхронизироваться внешне. Это обычно выполняется, синхронизируясь на некотором объекте, который естественно инкапсулирует набор. Если никакой такой объект не существует, набор должен быть "обернут", используя Collections.synchronizedSet
метод. Это лучше всего делается во время создания, чтобы предотвратить случайный несинхронизируемый доступ к набору:
Set s = Collections.synchronizedSet(new HashSet(...));
iterators, возвращенные методом iterator этого class, являются сбоем быстро: если набор изменяется когда-либо после того, как iterator создается, всегда кроме через собственный метод remove iterator, Iterator бросает a ConcurrentModificationException
. Таким образом, перед лицом параллельной модификации, iterator перестал работать быстро и чисто, вместо того, чтобы рискнуть произвольным, недетерминированным поведением в неопределенное время в будущем.
Отметьте, что поведение сбоя быстро iterator не может быть гарантировано, как, вообще говоря, невозможно сделать любые трудные гарантии в присутствии несинхронизируемой параллельной модификации. Перестаньте работать быстро iterators бросают ConcurrentModificationException на основе максимальных усилий. Поэтому, было бы неправильно записать программу, которая зависела от этого исключения для его правильности: поведение сбоя быстро iterators должно использоваться только, чтобы обнаружить ошибки.
Этот class является элементом Платформы Наборов Java.
Collection
, Set
, TreeSet
, HashMap
, Сериализированная ФормаКонструктор и Описание |
---|
HashSet()
Создает новое, пустое множество; у отступающего экземпляра HashMap есть емкость начальной буквы значения по умолчанию (16) и коэффициент загрузки (0.75).
|
HashSet(Collection<? extends E> c)
Создает новый набор, содержащий элементы в указанном наборе.
|
HashSet(int initialCapacity)
Создает новое, пустое множество; у отступающего экземпляра HashMap есть указанная начальная емкость и коэффициент загрузки значения по умолчанию (0.75).
|
HashSet(int initialCapacity, float loadFactor)
Создает новое, пустое множество; у отступающего экземпляра HashMap есть указанная начальная емкость и указанный коэффициент загрузки.
|
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
add(E e)
Добавляет указанный элемент к этому набору, если это уже не присутствует.
|
void |
clear()
Удаляет все элементы от этого набора.
|
Объект |
clone()
Возвращает мелкую копию этого экземпляра HashSet: сами элементы не клонируются.
|
boolean |
contains(Object o)
true возвратов, если этот набор содержит указанный элемент.
|
boolean |
isEmpty()
true возвратов, если этот набор не содержит элементов.
|
Iterator<E> |
iterator()
Возвращает iterator по элементам в этом наборе.
|
boolean |
remove(Object o)
Удаляет указанный элемент из этого набора, если это присутствует.
|
int |
size()
Возвращает число элементов в этом наборе (его количество элементов).
|
Spliterator<E> |
spliterator()
Создает a
Spliterator по элементам в этом наборе. |
equals, hashCode, removeAll
addAll, containsAll, retainAll, toArray, toArray, toString
finalize, getClass, notify, notifyAll, wait, wait, wait
addAll, containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray
parallelStream, removeIf, stream
forEach
public HashSet()
public HashSet(Collection<? extends E> c)
c
- набор, элементы которого должны быть помещены в этот наборNullPointerException
- если указанный набор является нулемpublic HashSet(int initialCapacity, float loadFactor)
initialCapacity
- начальная емкость карты хешаloadFactor
- коэффициент загрузки карты хешаIllegalArgumentException
- если начальная емкость является меньше чем нуль, или если коэффициент загрузки неположителенpublic HashSet(int initialCapacity)
initialCapacity
- начальная емкость хэш-таблицыIllegalArgumentException
- если начальная емкость является меньше чем нульpublic Iterator<E> iterator()
iterator
в интерфейсе Iterable<E>
iterator
в интерфейсе Collection<E>
iterator
в интерфейсе Set<E>
iterator
в class AbstractCollection<E>
ConcurrentModificationException
public int size()
size
в интерфейсе Collection<E>
size
в интерфейсе Set<E>
size
в class AbstractCollection<E>
public boolean isEmpty()
isEmpty
в интерфейсе Collection<E>
isEmpty
в интерфейсе Set<E>
isEmpty
в class AbstractCollection<E>
public boolean contains(Object o)
contains
в интерфейсе Collection<E>
contains
в интерфейсе Set<E>
contains
в class AbstractCollection<E>
o
- элемент, присутствие которого в этом наборе должно быть протестированоpublic boolean add(E e)
add
в интерфейсе Collection<E>
add
в интерфейсе Set<E>
add
в class AbstractCollection<E>
e
- элемент, который будет добавлен к этому наборуpublic boolean remove(Object o)
remove
в интерфейсе Collection<E>
remove
в интерфейсе Set<E>
remove
в class AbstractCollection<E>
o
- объект, который будет удален из этого набора, если существующийpublic void clear()
clear
в интерфейсе Collection<E>
clear
в интерфейсе Set<E>
clear
в class AbstractCollection<E>
public Object clone()
public Spliterator<E> spliterator()
Set
Spliterator
по элементам в этом наборе. Spliterator
отчеты Spliterator.SIZED
и Spliterator.DISTINCT
. Реализации должны задокументировать создание отчетов дополнительных характеристических значений.
spliterator
в интерфейсе Collection<E>
spliterator
в интерфейсе Set<E>
Spliterator
по элементам в этом наборе
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92