Client and backend. This class is shared: the same code is compiled into your app and into your server, so everything on this page works in both.

public class CopyOnWriteArraySet<E>

  1. Object
  2. AbstractCollection<E>
  3. AbstractSet<E>
  4. CopyOnWriteArraySet

ImplementsCollection<E>, Iterable<E>, Serializable, Set<E>

java.util.concurrent.CopyOnWriteArraySet for the Codename One runtime: a set kept in a CopyOnWriteArrayList, in the order its elements were added.

Every mutation replaces the backing array with a modified copy, and an iterator keeps the array that was current when it was created, so a listener that removes itself while the set is being walked neither disturbs the walk nor throws ConcurrentModificationException. Iterators are read only, as in the JDK.

It is as safe to use from several threads at once as the list it is kept in.

Constructors

public CopyOnWriteArraySet()
public CopyOnWriteArraySet(Collection<? extends E> c)

Methods

public int size()Returns a count of how many objects this Collection contains.
public boolean isEmpty()Returns if this Collection contains no elements.
public boolean contains(Object o)Tests whether this Collection contains the specified object.
public Object[] toArray()Returns a new array containing all elements contained in this ArrayList.
public <T> T[] toArray(T[] a)Returns an array containing all elements contained in this ArrayList.
public void clear()Removes all elements from this Collection, leaving it empty (optional).
public boolean remove(Object o)Removes one instance of the specified object from this Collection if one is contained (optional).
public boolean add(E e)Attempts to add object to the contents of this Collection (optional).
public boolean containsAll(Collection<?> c)Tests whether this Collection contains all objects contained in the specified Collection.
public boolean addAll(Collection<? extends E> c)Attempts to add all of the objects contained in collection to the contents of this Collection (optional).
public boolean removeAll(Collection<?> c)Removes all occurrences in this collection which are contained in the specified collection.
public boolean retainAll(Collection<?> c)Removes all objects from this Collection that are not also found in the Collection passed (optional).
public Iterator<E> iterator()The elements as they were when this was called, in the order they were added.
public boolean removeIf(Predicate<? super E> filter)Removes all of the elements of this collection that satisfy the given predicate.
public void forEach(Consumer<? super E> action)Performs the given action for each element of the Iterable.

Inherited methods

From Set

of, of, of, of, of, of, of, of, of, of, of, of, copyOf

Constructor details

CopyOnWriteArraySet

public CopyOnWriteArraySet()

CopyOnWriteArraySet

public CopyOnWriteArraySet(Collection<? extends E> c)

Method details

size

public int size()

Returns a count of how many objects this Collection contains.

In this class this method is declared abstract and has to be implemented by concrete Collection implementations.

Returns

how many objects this Collection contains, or Integer.MAX_VALUE if there are more than Integer.MAX_VALUE elements in this Collection.

isEmpty

public boolean isEmpty()
Returns if this Collection contains no elements. This implementation tests, whether size returns 0.

Returns

true if this Collection has no elements, false otherwise.

See also

contains

public boolean contains(Object o)
Tests whether this Collection contains the specified object. This implementation iterates over this Collection and tests, whether any element is equal to the given object. If object != null then object.equals(e) is called for each element e returned by the iterator until the element is found. If object == null then each element e returned by the iterator is compared with the test e == null.

Parameters

o Object
the object to search for.

Returns

true if object is an element of this Collection, false otherwise.

Throws

ClassCastException
if the object to look for isn’t of the correct type.
NullPointerException
if the object to look for is null and this Collection doesn’t support null elements.

toArray

public Object[] toArray()
Returns a new array containing all elements contained in this ArrayList.

Returns

an array of the elements from this ArrayList

toArray

public <T> T[] toArray(T[] a)
Returns an array containing all elements contained in this ArrayList. If the specified array is large enough to hold the elements, the specified array is used, otherwise an array of the same type is created. If the specified array is used and is larger than this ArrayList, the array element following the collection elements is set to null.

Parameters

a T[]
the array.

Returns

an array of the elements from this ArrayList.

Throws

ArrayStoreException
when the type of an element in this ArrayList cannot be stored in the type of the specified array.

clear

public void clear()

Removes all elements from this Collection, leaving it empty (optional). This implementation iterates over this Collection and calls the remove method on each element. If the iterator does not support removal of elements, an UnsupportedOperationException is thrown.

Concrete implementations usually can clear a Collection more efficiently and should therefore overwrite this method.

Throws

UnsupportedOperationException
it the iterator does not support removing elements from this Collection

remove

public boolean remove(Object o)
Removes one instance of the specified object from this Collection if one is contained (optional). This implementation iterates over this Collection and tests for each element e returned by the iterator, whether e is equal to the given object. If object != null then this test is performed using object.equals(e), otherwise using object == null. If an element equal to the given object is found, then the remove method is called on the iterator and true is returned, false otherwise. If the iterator does not support removing elements, an UnsupportedOperationException is thrown.

Parameters

o Object
the object to remove.

Returns

true if this Collection is modified, false otherwise.

Throws

UnsupportedOperationException
if removing from this Collection is not supported.
ClassCastException
if the object passed is not of the correct type.
NullPointerException
if object is null and this Collection doesn’t support null elements.

add

public boolean add(E e)

Attempts to add object to the contents of this Collection (optional).

After this method finishes successfully it is guaranteed that the object is contained in the collection.

If the collection was modified it returns true, false if no changes were made.

An implementation of Collection may narrow the set of accepted objects, but it has to specify this in the documentation. If the object to be added does not meet this restriction, then an IllegalArgumentException is thrown.

If a collection does not yet contain an object that is to be added and adding the object fails, this method must throw an appropriate unchecked Exception. Returning false is not permitted in this case because it would violate the postcondition that the element will be part of the collection after this method finishes.

Parameters

e E
the object to add.

Returns

true if this Collection is modified, false otherwise.

Throws

UnsupportedOperationException
if adding to this Collection is not supported.
ClassCastException
if the class of the object is inappropriate for this collection.
IllegalArgumentException
if the object cannot be added to this Collection.
NullPointerException
if null elements cannot be added to the Collection.

containsAll

public boolean containsAll(Collection<?> c)
Tests whether this Collection contains all objects contained in the specified Collection. This implementation iterates over the specified Collection. If one element returned by the iterator is not contained in this Collection, then false is returned; true otherwise.

Parameters

c Collection<?>
the collection of objects.

Returns

true if all objects in the specified Collection are elements of this Collection, false otherwise.

Throws

ClassCastException
if one or more elements of collection isn’t of the correct type.
NullPointerException
if collection contains at least one null element and this Collection doesn’t support null elements.

addAll

public boolean addAll(Collection<? extends E> c)

Attempts to add all of the objects contained in collection to the contents of this Collection (optional). This implementation iterates over the given Collection and calls add for each element. If any of these calls return true, then true is returned as result of this method call, false otherwise. If this Collection does not support adding elements, an UnsupportedOperationException is thrown.

If the passed Collection is changed during the process of adding elements to this Collection, the behavior depends on the behavior of the passed Collection.

Parameters

c Collection<? extends E>
the collection of objects.

Returns

true if this Collection is modified, false otherwise.

Throws

UnsupportedOperationException
if adding to this Collection is not supported.
ClassCastException
if the class of an object is inappropriate for this Collection.
IllegalArgumentException
if an object cannot be added to this Collection.
NullPointerException
if collection is null, or if it contains null elements and this Collection does not support such elements.

removeAll

public boolean removeAll(Collection<?> c)
Removes all occurrences in this collection which are contained in the specified collection.

Parameters

c Collection<?>
the collection of objects to remove.

Returns

true if this collection was modified, false otherwise.

Throws

UnsupportedOperationException
if removing from this collection is not supported.

retainAll

public boolean retainAll(Collection<?> c)

Removes all objects from this Collection that are not also found in the Collection passed (optional). After this method returns this Collection will only contain elements that also can be found in the Collection passed to this method.

This implementation iterates over this Collection and tests for each element e returned by the iterator, whether it is contained in the specified Collection. If this test is negative, then the remove method is called on the iterator. If the iterator does not support removing elements, an UnsupportedOperationException is thrown.

Parameters

c Collection<?>
the collection of objects to retain.

Returns

true if this Collection is modified, false otherwise.

Throws

UnsupportedOperationException
if removing from this Collection is not supported.
ClassCastException
if one or more elements of collection isn’t of the correct type.
NullPointerException
if collection contains at least one null element and this Collection doesn’t support null elements.

iterator

public Iterator<E> iterator()
The elements as they were when this was called, in the order they were added. remove on the iterator throws UnsupportedOperationException.

Returns

an iterator for accessing the Collection contents.

removeIf

public boolean removeIf(Predicate<? super E> filter)
Removes all of the elements of this collection that satisfy the given predicate. Stubbed in the CLDC11 subset; the actual implementation comes from the platform’s JDK at runtime.

forEach

public void forEach(Consumer<? super E> action)
Performs the given action for each element of the Iterable. Stubbed in the CLDC11 subset; the actual implementation comes from the platform’s JDK at runtime.