Spec-Zone .ru
спецификации, руководства, описания, API
|
E
- тип элементов сохранен в этом набореpublic class CopyOnWriteArraySet<E> extends AbstractSet<E> implements Serializable
Set
это использует внутреннее CopyOnWriteArrayList
для всех его операций. Таким образом это совместно использует те же самые основные свойства: Демонстрационное Использование. Следующий эскиз кода использует набор копии на записи, чтобы поддержать ряд Объектов-обработчиков, которые выполняют некоторое действие после обновлений состояния.
class Handler { void handle(); ... }
class X {
private final CopyOnWriteArraySet<Handler> handlers
= new CopyOnWriteArraySet<Handler>();
public void addHandler(Handler h) { handlers.add(h); }
private long internalState;
private synchronized void changeState() { internalState = ...; }
public void update() {
changeState();
for (Handler handler : handlers)
handler.handle();
}
}
Этот класс является элементом Платформы Наборов Java.
CopyOnWriteArrayList
, Сериализированная ФормаКонструктор и Описание |
---|
CopyOnWriteArraySet()
Создает пустое множество.
|
CopyOnWriteArraySet(Collection<? extends E> c)
Создает набор, содержащий все элементы указанного набора.
|
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
add(E e)
Добавляет указанный элемент к этому набору, если это уже не присутствует.
|
boolean |
addAll(Collection<? extends E> c)
Добавляют все элементы в указанном наборе к этому набору, если они уже не присутствуют.
|
void |
clear()
Удаляет все элементы от этого набора.
|
boolean |
contains(Object o)
true возвратов, если этот набор содержит указанный элемент.
|
boolean |
containsAll(Collection<?> c)
true возвратов, если этот набор содержит все элементы указанного набора.
|
boolean |
equals(Object o)
Сравнивает указанный объект с этим набором для равенства.
|
boolean |
isEmpty()
true возвратов, если этот набор не содержит элементов.
|
Iterator<E> |
iterator()
Возвращает iterator по элементам, содержавшимся в этом наборе в порядке, в котором были добавлены эти элементы.
|
boolean |
remove(Object o)
Удаляет указанный элемент из этого набора, если это присутствует.
|
boolean |
removeAll(Collection<?> c)
Удаляет из этого набора все его элементы, которые содержатся в указанном наборе.
|
boolean |
retainAll(Collection<?> c)
Сохраняет только элементы в этом наборе, которые содержатся в указанном наборе.
|
int |
size()
Возвращает число элементов в этом наборе.
|
Объект[] |
toArray()
Возвращает массив, содержащий все элементы в этом наборе.
|
<T> T[] |
toArray(T[] a)
Возвращает массив, содержащий все элементы в этом наборе; тип времени выполнения возвращенного массива является типом указанного массива.
|
хэш-код
toString
public CopyOnWriteArraySet()
public CopyOnWriteArraySet(Collection<? extends E> c)
c
- набор элементов, чтобы первоначально содержатьNullPointerException
- если указанный набор является нулемpublic int size()
size
в интерфейсе Collection<E>
size
в интерфейсе Set<E>
size
в классе AbstractCollection<E>
public boolean isEmpty()
isEmpty
в интерфейсе Collection<E>
isEmpty
в интерфейсе Set<E>
isEmpty
в классе AbstractCollection<E>
public boolean contains(Object o)
contains
в интерфейсе Collection<E>
contains
в интерфейсе Set<E>
contains
в классе AbstractCollection<E>
o
- элемент, присутствие которого в этом наборе должно быть протестированоpublic Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этим набором. (Другими словами этот метод должен выделить новый массив, даже если этот набор поддерживается массивом). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
toArray
в интерфейсе Set<E>
toArray
в классе AbstractCollection<E>
public <T> T[] toArray(T[] a)
Если этот набор помещается в указанный массив с комнатой, чтобы сэкономить (то есть, у массива есть больше элементов чем этот набор), элемент в массиве сразу после конца набора устанавливается в null. (Это полезно в определении длины этого набора, только если вызывающая сторона знает, что этот набор не содержит нулевых элементов.)
Если этот набор делает какие-либо гарантии относительно того, какой порядок его элементы возвращаются его iterator, этот метод должен возвратить элементы в том же самом порядке.
Как toArray()
метод, этот метод действует как мост между основанными на массиве и основанными на наборе API. Далее, этот метод позволяет точное управление типом времени выполнения выходного массива, и, при определенных обстоятельствах, может использоваться, чтобы сохранить затраты выделения.
Предположите, что x является набором, который, как известно, содержал только строки. Следующий код может использоваться, чтобы вывести набор в недавно выделенный массив String:
String[] y = x.toArray(new String[0]);Отметьте, что toArray(new Object[0]) идентичен в функции toArray().
toArray
в интерфейсе Collection<E>
toArray
в интерфейсе Set<E>
toArray
в классе AbstractCollection<E>
a
- массив, в который должны быть сохранены элементы этого набора, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой целью.ArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этом набореNullPointerException
- если указанный массив является нулемpublic void clear()
clear
в интерфейсе Collection<E>
clear
в интерфейсе Set<E>
clear
в классе AbstractCollection<E>
public boolean remove(Object o)
remove
в интерфейсе Collection<E>
remove
в интерфейсе Set<E>
remove
в классе AbstractCollection<E>
o
- объект, который будет удален из этого набора, если существующийpublic boolean add(E e)
add
в интерфейсе Collection<E>
add
в интерфейсе Set<E>
add
в классе AbstractCollection<E>
e
- элемент, который будет добавлен к этому наборуpublic boolean containsAll(Collection<?> c)
containsAll
в интерфейсе Collection<E>
containsAll
в интерфейсе Set<E>
containsAll
в классе AbstractCollection<E>
c
- набор, который будет проверен на включение в этом набореNullPointerException
- если указанный набор является нулемcontains(Object)
public boolean addAll(Collection<? extends E> c)
addAll
в интерфейсе Collection<E>
addAll
в интерфейсе Set<E>
addAll
в классе AbstractCollection<E>
c
- набор, содержащий элементы, которые будут добавлены к этому наборуNullPointerException
- если указанный набор является нулемadd(Object)
public boolean removeAll(Collection<?> c)
removeAll
в интерфейсе Collection<E>
removeAll
в интерфейсе Set<E>
removeAll
в классе AbstractSet<E>
c
- набор, содержащий элементы, которые будут удалены из этого набораClassCastException
- если класс элемента этого набора является несовместимым с указанным (дополнительным) наборомNullPointerException
- если этот набор содержит нулевой элемент, и указанный набор не разрешает нулевые (дополнительные) элементы, или если указанный набор является нулемremove(Object)
public boolean retainAll(Collection<?> c)
retainAll
в интерфейсе Collection<E>
retainAll
в интерфейсе Set<E>
retainAll
в классе AbstractCollection<E>
c
- набор, содержащий элементы, которые будут сохранены в этом набореClassCastException
- если класс элемента этого набора является несовместимым с указанным (дополнительным) наборомNullPointerException
- если этот набор содержит нулевой элемент, и указанный набор не разрешает нулевые (дополнительные) элементы, или если указанный набор является нулемremove(Object)
public Iterator<E> iterator()
Возвращенный iterator обеспечивает снимок состояния набора, когда iterator был создан. Никакая синхронизация не необходима, пересекая iterator. iterator НЕ поддерживает метод remove.
public boolean equals(Object o)
true
если указанный объект является тем же самым объектом как этот объект, или если это также a Set
и элементы, возвращенные iterator по указанному набору, являются тем же самым как элементами, возвращенными iterator по этому набору. Более формально два iterators, как полагают, возвращают те же самые элементы, если они возвращают то же самое число элементов и для каждого элемента e1
возвращенный iterator по указанному набору, есть элемент e2
возвращенный iterator по этому набору так, что (e1==null ? e2==null : e1.equals(e2))
.equals
в интерфейсе Collection<E>
equals
в интерфейсе Set<E>
equals
в классе AbstractSet<E>
o
- объект, который будет сравнен для равенства с этим наборомtrue
если указанный объект равен этому наборуObject.hashCode()
, HashMap
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.