TopBlend:
Here is the
first difference.
There are 171 differences.
is old.
is new.
java.util.concurrent
Class CopyOnWriteArrayList<E>
java.lang.Object
java.util.concurrent.CopyOnWriteArrayList<E>
-
-
Type Parameters:
-
E - the type of elements held in this collection
-
All Implemented Interfaces:
-
Serializable
,
Cloneable
,
Iterable
<E>,
Collection
<E>,
List
<E>,
RandomAccess
-
public class CopyOnWriteArrayList<E>
- extends Object
- implements List<E>, RandomAccess, Cloneable, Serializable
A thread-safe variant of
ArrayList
in which all mutative operations
(
add
,
set
,
(add, set,
and so on) are implemented by making a fresh copy of the underlying array.
This is ordinarily too costly, but may be more efficient than alternatives when traversal operations vastly outnumber mutations, and is useful when you cannot or don't want to synchronize traversals, yet need to preclude interference among concurrent threads. The "snapshot" style iterator method uses a reference to the state of the array at the point that the iterator was created. This array never changes during the lifetime of the iterator, so interference is impossible and the iterator is guaranteed not to throw
ConcurrentModificationException
. The iterator will not reflect additions, removals, or changes to the list since the iterator was created.
Element-changing operations on iterators themselves (
Element-changing operations on iterators themselves (remove, set, and add) are not supported. These methods throw
remove
,
set
, and
add
) are not supported. These methods throw
UnsupportedOperationException
.
All elements are permitted, including
null
.
Memory consistency effects: As with other concurrent collections, actions in a thread prior to placing an object into a CopyOnWriteArrayList
happen-before
actions subsequent to the access or removal of that element from the CopyOnWriteArrayList in another thread.
This class is a member of the
Java Collections Framework
.
-
Since:
-
1.5
-
See Also:
-
Serialized Form
Constructor Summary
|
CopyOnWriteArrayList
()
Creates an empty list. |
CopyOnWriteArrayList
(
Collection
<? extends
E
Creates a list containing the elements of the specified
collection,
Collection,
in the order they are returned by the
collection's
Collection's
iterator. |
CopyOnWriteArrayList
(
E
Creates
Create
a
list
new CopyOnWriteArrayList
holding a copy of
the
given array. |
Method Summary
|
boolean |
add
(
E
Appends the specified element to the end of this list. |
void |
add
(int index,
E
element)
Inserts the specified element at the specified position in this list. |
boolean |
addAll
(
Collection
<? extends
E
Appends all of the elements in the specified
collection
Collection
to the end of this list, in the order that they are returned by the specified
collection's iterator.
Collection's Iterator.
|
boolean |
addAll
(int index,
Collection
<? extends
E
Inserts all of the elements in the specified
collection
Collection
into this list, starting at the specified position. |
int |
addAllAbsent
(
Collection
<? extends
E
Appends all of the elements in the specified
collection
Collection
that are not already contained in this list, to the end of this list, in the order that they are returned by the specified
collection's iterator.
Collection's Iterator.
|
boolean |
addIfAbsent
(
E
Append the element if not present. |
void |
clear
()
Removes all of the elements from this list. |
Object
|
clone
()
Returns a shallow copy of this list. |
boolean |
contains
(
Object
Returns
true
if this list contains the specified element. |
boolean |
containsAll
(
Collection
Returns
true
if this
list
Collection
contains all of the elements
of
in
the specified
collection.
Collection.
|
boolean |
equals
(
Object
Compares the specified
object
Object
with this
list
List
for equality. |
E
|
get
(int index)
Returns the element at the specified position in this list. |
int |
hashCode
()
Returns the hash code value for this
list.
List.
|
int |
indexOf
(
E
Returns
Searches for
the
index of the
first occurrence of the
specified element in this list, searching forwards from
given argument, beginning the search at
index
,
or returns -1 if
and testing for equality using
the
element is not found.
equals
method.
|
int |
indexOf
(
Object
Returns
Searches for
the
index of the
first occurrence of the
specified element in this list, or -1 if this list does not contain
given argument, testing for equality using
the
element.
equals
method.
|
boolean |
isEmpty
()
Returns
true
Tests
if this list
contains
has
no elements. |
Iterator
<
E
|
iterator
()
Returns an
iterator
Iterator
over the elements
contained
in this
list in proper sequence.
collection.
|
int
|
lastIndexOf
(
E
Returns the index of the last occurrence of the specified element in this list, searching backwards from
index
, or returns -1 if the element is not found.
|
int
|
lastIndexOf
(
E
Searches backwards for the specified object, starting from the specified index, and returns an index to it.
|
int |
lastIndexOf
(
Object
Returns the index of the last occurrence of the specified
element
object
in this
list, or -1 if this list does not contain the element.
list.
|
ListIterator
<
E
|
listIterator
()
Returns
a list iterator over
an Iterator of
the elements in this
list
List
(in proper sequence). |
ListIterator
<
E
|
listIterator
(int index)
Returns a
list iterator
ListIterator
of the elements in this
list
List
(in proper sequence), starting at the specified position in
this list.
the List.
|
E
|
remove
(int index)
Removes the element at the specified position in this list. |
boolean |
remove
(
Object
Removes
the first occurrence
a single instance
of the specified element from this list, if it is
present.
present (optional operation).
|
boolean |
removeAll
(
Collection
Removes from this
list
Collection
all of its elements that are contained in the specified
collection.
Collection.
|
boolean |
retainAll
(
Collection
Retains only the elements in this
list
Collection
that are contained in the specified
collection.
Collection (optional operation).
|
E
|
set
(int index,
E
element)
Replaces the element at the specified position in this list with the specified element. |
int |
size
()
Returns the number of elements in this list. |
List
<
E
|
subList
(int fromIndex, int toIndex)
Returns a view of the portion of this
list
List
between
fromIndex
,
fromIndex,
inclusive, and
toIndex
,
toIndex,
exclusive. |
Object
|
toArray
()
Returns an array containing all of the elements in this list in
proper sequence (from first to last element).
the correct order.
|
|
toArray
(T[] a)
Returns an array containing all of the elements in this list in
proper sequence (from first to last element);
the
runtime type of the returned array is that of the specified array.
correct order.
|
String
|
toString
()
Returns a string representation of this
list.
Collection, containing the String representation of each element.
|
CopyOnWriteArrayList
public CopyOnWriteArrayList()
-
Creates an empty list.
CopyOnWriteArrayList
public CopyOnWriteArrayList(Collection<? extends E> c)
-
Creates a list containing the elements of the specified
collection,
Collection,
in the order they are returned by the
collection's
Collection's
iterator.
-
Parameters:
-
c - the collection of initially held elements
-
Throws:
-
NullPointerException
- if the specified collection is null
CopyOnWriteArrayList
public CopyOnWriteArrayList(E[] toCopyIn)
-
Creates
Create
a
list
new CopyOnWriteArrayList
holding a copy of
the
given array.
-
Parameters:
-
toCopyIn - the array (a copy of this array is used as the internal array)
-
Throws:
-
NullPointerException
- if the specified array is null
size
public int size()
-
Returns the number of elements in this list.
-
-
Specified by:
-
size
in interface
Collection
<
E
>
-
Specified by:
-
size
in interface
List
<
E
>
-
-
Returns:
-
the number of elements in this
list
list.
isEmpty
public boolean isEmpty()
-
Returns
true
Tests
if this list
contains
has
no elements.
-
-
Specified by:
-
isEmpty
in interface
Collection
<
E
>
-
Specified by:
-
isEmpty
in interface
List
<
E
>
-
-
Returns:
-
true
if this list
contains
has
no
elements
elements;
false
otherwise.
contains
public boolean contains(Object o) elem)
-
Returns
true
if this list contains the specified element.
More formally, returns
true
if and only if this list contains at least one element
e
such that
(o==null ? e==null : o.equals(e))
.
-
-
Specified by:
-
contains
in interface
Collection
<
E
>
-
Specified by:
-
contains
in interface
List
<
E
>
-
-
Parameters:
-
o
elem
- element whose presence in this
list
List
is to be
tested
tested.
-
Returns:
-
true
if
this list contains
the specified element
is present; false otherwise.
indexOf
public int indexOf(Object o) elem)
-
Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element. More formally, returns the lowest index
Searches for the first occurrence of the given argument, testing for equality using the
i
equals
such that
(o==null ? get(i)==null : o.equals(get(i)))
, or -1 if there is no such index.
method.
-
-
Specified by:
-
indexOf
in interface
List
<
E
>
-
-
Parameters:
-
o - element to search for
elem - an object.
-
Returns:
-
the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element
the index of the first occurrence of the argument in this list; returns
-1
if the object is not found.
-
See Also:
-
Object.equals(Object)
indexOf
public int indexOf(E e,
elem,
int index)
-
Returns the index of the first occurrence of the specified element in this list, searching forwards from
Searches for the first occurrence of the given argument, beginning the search at
index
, or returns -1 if the element is not found. More formally, returns the lowest index
, and testing for equality using the
i
equals
such that
(i >= index && (e==null ? get(i)==null : e.equals(get(i))))
, or -1 if there is no such index.
method.
-
-
-
Parameters:
-
e - element to search for
elem - an object.
-
index -
the
index to start searching
from
from.
-
Returns:
-
the index of the first occurrence of the
element
object argument
in this
list
List
at position
index
or later in the
list;
List; returns
-1
if the
element
object
is not found. -
Throws:
See Also:
-
IndexOutOfBoundsException
Object.equals(Object)
- if the specified index is negative
lastIndexOf
public int lastIndexOf(Object o) elem)
-
Returns the index of the last occurrence of the specified element in this list, or -1 if this list does not contain the element. More formally, returns the highest index
i
such that
(o==null ? get(i)==null : o.equals(get(i)))
, or -1 if there is no such index.
Returns the index of the last occurrence of the specified object in this list.
-
-
Specified by:
-
lastIndexOf
in interface
List
<
E
>
-
-
Parameters:
-
o - element to search for
elem - the desired element.
-
Returns:
-
the index of the last occurrence of the specified
element
object
in this
list, or
list; returns
-1 if
this list does
the object is
not
contain the element
found.
lastIndexOf
public int lastIndexOf(E e,
elem,
int index)
-
Returns the index of the last occurrence of the specified element in this list, searching backwards from
index
, or returns -1 if the element is not found. More formally, returns the highest index
i
such that
(i <= index && (e==null ? get(i)==null : e.equals(get(i))))
, or -1 if there is no such index.
Searches backwards for the specified object, starting from the specified index, and returns an index to it.
-
-
-
Parameters:
-
e - element to search for
elem - the desired element.
-
index -
the
index to start searching
backwards from
from.
-
Returns:
-
the index of the last occurrence of the element at position less than or equal to
index
in this list; -1 if the element is not found.
-
Throws:
-
IndexOutOfBoundsException
- if the specified index is greater than or equal to the current size of this list
the index of the last occurrence of the specified object in this List at position less than index in the List; -1 if the object is not found.
clone
public Object clone()
-
Returns a shallow copy of this list. (The elements themselves are not copied.)
-
-
Overrides:
-
clone
in class
Object
-
-
Returns:
-
a clone of this
list
list.
-
See Also:
-
Cloneable
toArray
public Object[] toArray()
-
Returns an array containing all of the elements in this list in
proper sequence (from first to last element).
the correct order.
The returned array will be "safe" in that no references to it are maintained by this list. (In other words, this method must allocate a new array). The caller is thus free to modify the returned array.
This method acts as bridge between array-based and collection-based APIs.
-
-
Specified by:
-
toArray
in interface
Collection
<
E
>
-
Specified by:
-
toArray
in interface
List
<
E
>
-
-
Returns:
-
an array containing all
of
the elements in this list
in the correct order.
-
See Also:
-
Arrays.asList(Object[])
toArray
public <T> T[] toArray(T[] a)
-
Returns an array containing all of the elements in this list in
proper sequence (from first to last element);
the
correct order. The
runtime type of the returned array is that of the specified array. If the list fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this list.
If
this
the
list fits in the specified array with room to spare (i.e., the array has more elements than
this
the
list), the element in the array immediately following the end of the
list
collection
is set to
null
. (This
null. This
is useful in determining the length of
this
the
list
only
if the caller knows that
this
the
list does not contain any null
elements.)
elements.
Like the
toArray()
method, this method acts as bridge between array-based and collection-based APIs. Further, this method allows precise control over the runtime type of the output array, and may, under certain circumstances, be used to save allocation costs.
Suppose
x
is a list known to contain only strings. The following code can be used to dump the list into a newly allocated array of
String
:
String[] y = x.toArray(new String[0]);
Note that
toArray(new Object[0])
is identical in function to
toArray()
.
-
-
Specified by:
-
toArray
in interface
Collection
<
E
>
-
Specified by:
-
toArray
in interface
List
<
E
>
-
-
Parameters:
-
a - the array into which the elements of the list are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.
-
Returns:
-
an array containing
all
the elements
in this list
of the list.
-
Throws:
-
ArrayStoreException
-
if
the runtime type of
the specified array
a
is not a supertype of the runtime type of every element in this
list
-
NullPointerException
- if the specified array is null
list.
get
public E get(int index)
-
Returns the element at the specified position in this list.
-
-
Specified by:
-
get
in interface
List
<
E
>
-
-
Parameters:
-
index - index of
the
element to
return
return.
-
Returns:
-
the element at the specified position in this
list
list.
-
Throws:
-
IndexOutOfBoundsException
- if
the
index is out of range
(
index
(index
< 0 || index >=
size()
size())
)
.
set
public E set(int index,
E element)
-
Replaces the element at the specified position in this list with the specified element.
-
-
Specified by:
-
set
in interface
List
<
E
>
-
-
Parameters:
-
index - index of
the
element to
replace
replace.
-
element - element to be stored at the specified
position
position.
-
Returns:
-
the element previously at the specified
position
position.
-
Throws:
-
IndexOutOfBoundsException
- if
the
index
is
out of range
(
index
(index
< 0 || index >=
size()
size())
)
.
add
public boolean add(E e) element)
-
Appends the specified element to the end of this list.
-
-
Specified by:
-
add
in interface
Collection
<
E
>
-
Specified by:
-
add
in interface
List
<
E
>
-
-
Parameters:
-
e
element
- element to be appended to this
list
list.
-
Returns:
-
true
(as specified by
Collection.add(E)
)
true (as per the general contract of Collection.add).
add
public void add(int index,
E element)
-
Inserts the specified element at the specified position in this list. Shifts the element currently at that position (if any) and any subsequent elements to the right (adds one to their indices).
-
-
Specified by:
-
add
in interface
List
<
E
>
-
-
Parameters:
-
index - index at which the specified element is to be
inserted
inserted.
-
element - element to be
inserted
inserted.
-
Throws:
-
IndexOutOfBoundsException
- if
the
index is out of range
(
index
(index
< 0 || index >
size()
size())
)
.
remove
public E remove(int index)
-
Removes the element at the specified position in this list. Shifts any subsequent elements to the left (subtracts one from their indices).
Returns the element that was removed from the list.
-
-
Specified by:
-
remove
in interface
List
<
E
>
-
-
Parameters:
-
index - the index of the element to
be removed
removed.
-
Returns:
-
the element previously at the specified position
the element that was removed from the list.
-
Throws:
-
IndexOutOfBoundsException
- if
the
index
is
out of range
(
index
(index
< 0 || index >=
size()
size())
)
.
remove
public boolean remove(Object o)
-
Removes
the first occurrence
a single instance
of the specified element from this list, if it is
present. If this list does not contain the element, it is unchanged.
present (optional operation).
More formally, removes
the
an
element
with the lowest index
i
e
such that
(o==null ? get(i)==null : o.equals(get(i)))
(o==null ? e==null : o.equals(e))
(if such an element exists).
, if the list contains one or more such elements.
Returns
true
if
this
the
list contained the specified element (or equivalently, if
this
the
list changed as a result of the call).
-
-
Specified by:
-
remove
in interface
Collection
<
E
>
-
Specified by:
-
remove
in interface
List
<
E
>
-
-
Parameters:
-
o - element to be removed from this list, if
present
present.
-
Returns:
-
true
if
this
the
list contained the specified
element
element.
addIfAbsent
public boolean addIfAbsent(E e) element)
-
Append the element if not present.
-
-
-
Parameters:
-
e
element
- element to be added to this
list,
Collection,
if
absent
absent.
-
Returns:
-
true
if
the element was
added
containsAll
public boolean containsAll(Collection<?> c)
-
Returns
true
if this
list
Collection
contains all of the elements
of
in
the specified
collection.
Collection.
This implementation iterates over the specified Collection, checking each element returned by the Iterator in turn to see if it's contained in this Collection. If all elements are so contained true is returned, otherwise false.
-
-
Specified by:
-
containsAll
in interface
Collection
<
E
>
-
Specified by:
-
containsAll
in interface
List
<
E
>
-
-
Parameters:
-
c - collection to be checked for containment in this list
c - the collection
-
Returns:
-
true
if this list contains all of the elements of the specified collection
true if all elements are contained
-
Throws:
-
NullPointerException
- if the specified collection is null
-
See Also:
-
contains(Object)
Collection.contains(Object)
removeAll
public boolean removeAll(Collection<?> c)
-
Removes from this
list
Collection
all of its elements that are contained in the specified
collection.
Collection.
This is a particularly expensive operation in this class because of the need for an internal temporary array.
-
-
Specified by:
-
removeAll
in interface
Collection
<
E
>
-
Specified by:
-
removeAll
in interface
List
<
E
>
-
-
Parameters:
-
c - collection containing elements to be removed from this list
c - the collection
-
Returns:
-
true
if this
list
Collection
changed as a result of the
call
call.
-
Throws:
See Also:
-
ClassCastException
Collection.remove(Object)
- if the class of an element of this list is incompatible with the specified collection (optional)
-
NullPointerException
,
Collection.contains(Object)
- if this list contains a null element and the specified collection does not permit null elements (optional), or if the specified collection is null
-
See Also:
-
remove(Object)
retainAll
public boolean retainAll(Collection<?> c)
-
Retains only the elements in this
list
Collection
that are contained in the specified
collection.
Collection (optional operation).
In other words, removes from this
list
Collection
all of its elements that are not contained in the specified
collection.
Collection.
-
-
Specified by:
-
retainAll
in interface
Collection
<
E
>
-
Specified by:
-
retainAll
in interface
List
<
E
>
-
-
Parameters:
-
c - collection containing elements to be retained in this list
c - the collection
-
Returns:
-
true
if this
list
Collection
changed as a result of the
call
call.
-
Throws:
See Also:
-
ClassCastException
Collection.remove(Object)
- if the class of an element of this list is incompatible with the specified collection (optional)
-
NullPointerException
,
Collection.contains(Object)
- if this list contains a null element and the specified collection does not permit null elements (optional), or if the specified collection is null
-
See Also:
-
remove(Object)
addAllAbsent
public int addAllAbsent(Collection<? extends E> c)
-
Appends all of the elements in the specified
collection
Collection
that are not already contained in this list, to the end of this list, in the order that they are returned by the specified
collection's iterator.
Collection's Iterator.
-
-
-
Parameters:
-
c -
collection containing
elements to be added
to
into
this
list
list.
-
Returns:
-
the number of elements added
-
Throws:
-
NullPointerException
- if the specified collection is null
-
See Also:
-
addIfAbsent(Object)
clear
public void clear()
-
Removes all of the elements from this list.
The list will be empty after this call returns.
-
-
Specified by:
-
clear
in interface
Collection
<
E
>
-
Specified by:
-
clear
in interface
List
<
E
>
-
addAll
public boolean addAll(Collection<? extends E> c)
-
Appends all of the elements in the specified
collection
Collection
to the end of this list, in the order that they are returned by the specified
collection's iterator.
Collection's Iterator.
-
-
Specified by:
-
addAll
in interface
Collection
<
E
>
-
Specified by:
-
addAll
in interface
List
<
E
>
-
-
Parameters:
-
c -
collection containing
elements to be
added to
inserted into
this
list
list.
-
Returns:
-
true
if this list changed as a result of the call
true if any elements are added
-
Throws:
-
NullPointerException
- if the specified collection is null
-
See Also:
-
add(Object)
Collection.add(Object)
addAll
public boolean addAll(int index,
Collection<? extends E> c)
-
Inserts all of the elements in the specified
collection
Collection
into this list, starting at the specified position. Shifts the element currently at that position (if any) and any subsequent elements to the right (increases their indices). The new elements will appear in
this
the
list in the order that they are returned by the specified
collection's
Collection's
iterator.
-
-
Specified by:
-
addAll
in interface
List
<
E
>
-
-
Parameters:
-
index - index at which to insert
the
first element from the specified
collection
collection.
-
c -
collection containing
elements to be
added to
inserted into
this
list
list.
-
Returns:
-
true
if this list changed as a result of the call
true if any elements are added
-
Throws:
-
IndexOutOfBoundsException
- if the index is out of range (
index < 0 || index > size()
)
-
NullPointerException
- if the specified collection is null
-
See Also:
-
add(int,Object)
- index out of range (index < 0 || index > size()).
toString
public String toString()
-
Returns a string representation of this list. The string representation consists of the string representations of the list's elements in the order they are returned by its iterator, enclosed in square brackets (
"[]"
). Adjacent elements are separated by the characters
", "
(comma and space). Elements are converted to strings as by
String.valueOf(Object)
.
Returns a string representation of this Collection, containing the String representation of each element.
-
-
Overrides:
-
toString
in class
Object
-
-
Returns:
-
a string representation of
this list
the object.
equals
public boolean equals(Object o)
-
Compares the specified
object
Object
with this
list
List
for equality. Returns true if and only if the specified
object
Object
is also a
List
,
List,
both
lists
Lists
have the same size, and all corresponding pairs of elements in the two
lists
Lists
are equal. (Two elements
e1
and
e2
are equal if
(e1==null ? e2==null : e1.equals(e2))
.) In other words, two
lists
Lists
are defined to be equal if they contain the same elements in the same order.
This implementation first checks if the specified object is this List. If so, it returns true; if not, it checks if the specified object is a List. If not, it returns false; if so, it iterates over both lists, comparing corresponding pairs of elements. If any comparison returns false, this method returns false. If either Iterator runs out of elements before the other it returns false (as the Lists are of unequal length); otherwise it returns true when the iterations complete.
-
-
Specified by:
-
equals
in interface
Collection
<
E
>
-
Specified by:
-
equals
in interface
List
<
E
>
-
Overrides:
-
equals
in class
Object
-
-
Parameters:
-
o - the
object
Object
to be compared for equality with this
list
List.
-
Returns:
-
true
if the specified
object
Object
is equal to this
list
List.
-
See Also:
-
Object.hashCode()
,
Hashtable
hashCode
public int hashCode()
-
Returns the hash code value for this
list.
List.
This implementation uses the definition in
List.hashCode()
.
-
-
Specified by:
-
hashCode
in interface
Collection
<
E
>
-
Specified by:
-
hashCode
in interface
List
<
E
>
-
Overrides:
-
hashCode
in class
Object
-
-
Returns:
-
the hash code
value for this list
-
See Also:
-
Object.equals(java.lang.Object)
,
Hashtable
iterator
public Iterator<E> iterator()
-
Returns an
iterator
Iterator
over the elements
contained
in this
list in proper sequence.
collection.
The
returned
iterator provides a snapshot of the state of the list when the iterator was constructed. No synchronization is needed while traversing the iterator. The iterator does NOT support the
remove
method.
-
-
Specified by:
-
iterator
in interface
Iterable
<
E
>
-
Specified by:
-
iterator
in interface
Collection
<
E
>
-
Specified by:
-
iterator
in interface
List
<
E
>
-
-
Returns:
-
an iterator over the elements in this list in proper sequence
the iterator
listIterator
public ListIterator<E> listIterator()
-
Returns
a list iterator over
an Iterator of
the elements in this
list
List
(in proper sequence).
The
returned
iterator provides a snapshot of the state of the list when the iterator was constructed. No synchronization is needed while traversing the iterator. The iterator does NOT support the
remove
,
set
,
or
add
methods.
-
-
Specified by:
-
listIterator
in interface
List
<
E
>
-
-
Returns:
-
a list iterator over the elements in this list (in proper sequence)
the iterator
listIterator
public ListIterator<E> listIterator(int index)
-
Returns a
list iterator
ListIterator
of the elements in this
list
List
(in proper sequence), starting at the specified position in
this list.
the List.
The specified index indicates the first element that would be returned by an initial call to
next
.
nextElement.
An initial call to
previous
previousElement
would return the element with the specified index minus one.
The ListIterator returned by this implementation will throw an UnsupportedOperationException in its remove, set and add methods.
The returned iterator provides a snapshot of the state of the list when the iterator was constructed. No synchronization is needed while traversing the iterator. The iterator does NOT support the
remove
,
set
or
add
methods.
-
-
Specified by:
-
listIterator
in interface
List
<
E
>
-
-
Parameters:
-
index - index of first element to be returned from the
list iterator
ListIterator
(by a call to
the
next
method)
getNext).
-
Returns:
-
a list iterator of the elements in this list (in proper sequence), starting at the specified position in this list
the iterator
-
Throws:
-
IndexOutOfBoundsException
-
if the
index is out of range
(
index
(index
< 0 || index >
size()
)
size()).
subList
public List<E> subList(int fromIndex,
int toIndex)
-
Returns a view of the portion of this
list
List
between
fromIndex
,
fromIndex,
inclusive, and
toIndex
,
toIndex,
exclusive. The returned
list
List
is backed by this
list,
List,
so changes in the returned
list
List
are reflected in this
list,
List,
and vice-versa. While mutative operations are supported, they are probably not very useful for CopyOnWriteArrayLists.
The semantics of the
list
List
returned by this method become undefined if the backing list (i.e., this
list)
List)
is
structurally modified
in any way other than via the returned
list.
List.
(Structural modifications are those that change the size of the
list,
List,
or otherwise perturb it in such a fashion that iterations in progress may yield incorrect results.)
-
-
Specified by:
-
subList
in interface
List
<
E
>
-
-
Parameters:
-
fromIndex - low endpoint (inclusive) of the
subList
subList.
-
toIndex - high endpoint (exclusive) of the
subList
subList.
-
Returns:
-
a view of the specified range within this
list
List.
-
Throws:
-
IndexOutOfBoundsException
-
for an illegal
Illegal
endpoint index value
(
fromIndex
(fromIndex
< 0 || toIndex > size || fromIndex >
toIndex
)
toIndex).