| java.lang.Object | |
| ↳ | java.util.concurrent.CopyOnWriteArrayList<E> | 
A thread-safe random-access list.
Read operations (including get(int)) do not block and may overlap with update operations. Reads reflect the results of the most recently completed operations. Aggregate operations like addAll(int, Collection
         ) and clear() are atomic; they never expose an intermediate state. 
Iterators of this list never throw ConcurrentModificationException. When an iterator is created, it keeps a copy of the list's contents. It is always safe to iterate this list, but iterations may not reflect the latest state of the list. 
Iterators returned by this list and its sub lists cannot modify the underlying list. In particular, remove(), add(E) and set(E) all throw UnsupportedOperationException. 
This class offers extended API beyond the List interface. It includes additional overloads for indexed search (indexOf(E, int) and lastIndexOf(E, int)) and methods for conditional adds (addIfAbsent(E) and addAllAbsent(Collection
         )). 
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|  | 
           Creates a new empty instance.
           | ||||||||||
|  | 
           Creates a new instance containing the elements of 
            collection. | ||||||||||
|  | 
           Creates a new instance containing the elements of 
            array. | ||||||||||
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|  | 
           Adds the specified object at the end of this 
            List. | ||||||||||
|  | 
           Inserts the specified object into this 
            Listat the specified location. | ||||||||||
|  | 
           Adds the objects in the specified collection to the end of this 
            List. | ||||||||||
|  | 
           Inserts the objects in the specified collection at the specified location in this 
            List. | ||||||||||
|  | 
           Adds the elements of 
            collectionthat are not already present in this list. | ||||||||||
|  | 
           Adds 
            objectto the end of this list if it is not already present. | ||||||||||
|  | 
           Removes all elements from this 
            List, leaving it empty. | ||||||||||
|  | 
           Creates and returns a copy of this 
            Object. | ||||||||||
|  | 
           Tests whether this 
            Listcontains the specified object. | ||||||||||
|  | 
           Tests whether this 
            Listcontains all objects contained in the specified collection. | ||||||||||
|  | 
           Compares this instance with the specified object and indicates if they are equal.
           | ||||||||||
|  | 
           Returns the element at the specified location in this 
            List. | ||||||||||
|  | 
           Returns an integer hash code for this object.
           | ||||||||||
|  | 
           Searches this 
            Listfor the specified object and returns the index of the first occurrence. | ||||||||||
|  | 
           Searches this list for 
            objectand returns the index of the first occurrence that is at or afterfrom. | ||||||||||
|  | 
           Returns whether this 
            Listcontains no elements. | ||||||||||
|  | 
           Returns an 
            Iteratorthat iterates over the elements of this list as they were at the time of this method call. | ||||||||||
|  | 
           Searches this 
            Listfor the specified object and returns the index of the last occurrence. | ||||||||||
|  | 
           Searches this list for 
            objectand returns the index of the last occurrence that is beforeto. | ||||||||||
|  | 
           Returns a 
            ListIteratorthat iterates over the elements of this list as they were at the time of this method call. | ||||||||||
|  | 
           Equivalent to 
            listIterator(0). | ||||||||||
|  | 
           Removes the object at the specified location from this 
            List. | ||||||||||
|  | 
           Removes the first occurrence of the specified object from this 
            List. | ||||||||||
|  | 
           Removes all occurrences in this 
            Listof each object in the specified collection. | ||||||||||
|  | 
           Removes all objects from this 
            Listthat are not contained in the specified collection. | ||||||||||
|  | 
           Replaces the element at the specified location in this 
            Listwith the specified object. | ||||||||||
|  | 
           Returns the number of elements in this 
            List. | ||||||||||
|  | 
           Returns a 
            Listof the specified portion of thisListfrom the given start index to the end index minus one. | ||||||||||
|  | 
           Returns an array containing all elements contained in this 
            List. | ||||||||||
|  | 
           Returns an array containing all elements contained in this 
            List. | ||||||||||
|  | 
           Returns a string containing a concise, human-readable description of this object.
           | ||||||||||
| [Expand] 
           Inherited Methods
           | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|  From class java.lang.Object | |||||||||||
|  From interface java.lang.Iterable | |||||||||||
|  From interface java.util.Collection | |||||||||||
|  From interface java.util.List | |||||||||||
Creates a new instance containing the elements of collection. 
Creates a new instance containing the elements of array. 
Adds the specified object at the end of this List.
| e | the object to add. | 
|---|
Inserts the specified object into this List at the specified location. The object is inserted before the current element at the specified location. If the location is equal to the size of this List, the object is added at the end. If the location is smaller than the size of this List, then all elements beyond the specified location are moved by one position towards the end of the List.
| index | the index at which to insert. | 
|---|---|
| e | the object to add. | 
Adds the objects in the specified collection to the end of this List. The objects are added in the order in which they are returned from the collection's iterator.
| collection | the collection of objects. | 
|---|
true if this List is modified, false otherwise (i.e. if the passed collection was empty).Inserts the objects in the specified collection at the specified location in this List. The objects are added in the order they are returned from the collection's iterator.
| index | the index at which to insert. | 
|---|---|
| collection | the collection of objects to be inserted. | 
List has been modified through the insertion, false otherwise (i.e. if the passed collection was empty).Adds the elements of collection that are not already present in this list. If collection includes a repeated value, at most one occurrence of that value will be added to this list. Elements are added at the end of this list. 
Callers of this method may prefer CopyOnWriteArraySet, whose API is more appropriate for set operations. 
Adds object to the end of this list if it is not already present. 
Callers of this method may prefer CopyOnWriteArraySet, whose API is more appropriate for set operations. 
Removes all elements from this List, leaving it empty.
Creates and returns a copy of this Object. The default implementation returns a so-called "shallow" copy: It creates a new instance of the same class and then copies the field values (including object references) from this instance to the new instance. A "deep" copy, in contrast, would also recursively clone nested objects. A subclass that needs to implement this kind of cloning should call super.clone() to create the new instance and then create deep copies of the nested, mutable objects.
Tests whether this List contains the specified object.
| o | the object to search for. | 
|---|
true if object is an element of this List, false otherwise Tests whether this List contains all objects contained in the specified collection.
| collection | the collection of objects | 
|---|
true if all objects in the specified collection are elements of this List, false otherwise. Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null. 
The default implementation returns true only if this == o. See Writing a correct equals method if you intend implementing your own equals method. 
The general contract for the equals and hashCode() methods is that if equals returns true for any two objects, then hashCode() must return the same value for these objects. This means that subclasses of Object usually override either both methods or neither of them.
| other | the object to compare this instance with. | 
|---|
true if the specified object is equal to this Object; false otherwise.Returns the element at the specified location in this List.
| index | the index of the element to return. | 
|---|
Returns an integer hash code for this object. By contract, any two objects for which equals(Object) returns true must return the same hash code value. This means that subclasses of Object usually override both methods or neither method. 
Note that hash values must not change over time unless information used in equals comparisons also changes.
See Writing a correct hashCode method if you intend implementing your own hashCode method.
Searches this List for the specified object and returns the index of the first occurrence.
| object | the object to search for. | 
|---|
Searches this list for object and returns the index of the first occurrence that is at or after from.
Returns whether this List contains no elements.
true if this List has no elements, false otherwise.Returns an Iterator that iterates over the elements of this list as they were at the time of this method call. Changes to the list made after this method call will not be reflected by the iterator, nor will they trigger a ConcurrentModificationException. 
The returned iterator does not support remove(). 
List.Searches this List for the specified object and returns the index of the last occurrence.
| object | the object to search for. | 
|---|
Searches this list for object and returns the index of the last occurrence that is before to.
Returns a ListIterator that iterates over the elements of this list as they were at the time of this method call. Changes to the list made after this method call will not be reflected by the iterator, nor will they trigger a ConcurrentModificationException. 
The returned iterator does not support add(E), set(E) or remove(), 
| index | the index at which to start the iteration. | 
|---|
List.Equivalent to listIterator(0). 
List iterator on the elements of this ListRemoves the object at the specified location from this List.
| index | the index of the object to remove. | 
|---|
Removes the first occurrence of the specified object from this List.
| o | the object to remove. | 
|---|
List was modified by this operation, false otherwise.Removes all occurrences in this List of each object in the specified collection.
| collection | the collection of objects to remove. | 
|---|
true if this List is modified, false otherwise.Removes all objects from this List that are not contained in the specified collection.
| collection | the collection of objects to retain. | 
|---|
true if this List is modified, false otherwise.Replaces the element at the specified location in this List with the specified object. This operation does not change the size of the List.
| index | the index at which to put the specified object. | 
|---|---|
| e | the object to insert. | 
Returns the number of elements in this List.
List. Returns a List of the specified portion of this List from the given start index to the end index minus one. The returned List is backed by this List so changes to it are reflected by the other.
| from | the index at which to start the sublist. | 
|---|---|
| to | the index one past the end of the sublist. | 
List.Returns an array containing all elements contained in this List. 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 List, the array element following the collection elements is set to null.
| contents | the array. | 
|---|
List.Returns an array containing all elements contained in this List.
List. Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:
getClass().getName() + '@' + Integer.toHexString(hashCode())
See Writing a useful toString method if you intend implementing your own toString method.