org.apache.karaf.util.collections
Class CopyOnWriteArrayIdentityList<E>

java.lang.Object
  extended by org.apache.karaf.util.collections.CopyOnWriteArrayIdentityList<E>
Type Parameters:
E - the element type
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<E>, java.util.Collection<E>, java.util.List<E>, java.util.RandomAccess

public class CopyOnWriteArrayIdentityList<E>
extends java.lang.Object
implements java.util.List<E>, java.util.RandomAccess, java.lang.Cloneable, java.io.Serializable

Implements a ArrayList variant that is thread-safe. All write operation result in a new copy of the underlying data being created. Iterators reflect the state of the CopyOnWriteArrayIdentityList at the time they were created. They are not updated to reflect subsequent changes to the list. In addition, these iterators cannot be used for modifying the underlying CopyOnWriteArrayIdentityList. In addition, elements are compared based on reference equality instead of object equality when comparing values.

See Also:
Serialized Form

Constructor Summary
CopyOnWriteArrayIdentityList()
          Creates a new, empty instance of CopyOnWriteArrayList.
CopyOnWriteArrayIdentityList(java.util.Collection<? extends E> c)
          Creates a new instance of CopyOnWriteArrayList and fills it with the contents of a given Collection.
CopyOnWriteArrayIdentityList(E[] array)
          Creates a new instance of CopyOnWriteArrayList and fills it with the contents of a given array.
 
Method Summary
 boolean add(E e)
           
 void add(int index, E e)
           
 boolean addAll(java.util.Collection<? extends E> c)
           
 boolean addAll(int index, java.util.Collection<? extends E> c)
           
 int addAllAbsent(java.util.Collection<? extends E> c)
          Adds to this CopyOnWriteArrayList all those elements from a given collection that are not yet part of the list.
 boolean addIfAbsent(E e)
          Adds to this CopyOnWriteArrayList another element, given that this element is not yet part of the list.
 void clear()
           
 java.lang.Object clone()
           
 boolean contains(java.lang.Object o)
           
 boolean containsAll(java.util.Collection<?> c)
           
 boolean equals(java.lang.Object o)
           
 E get(int index)
           
 int hashCode()
           
 int indexOf(E e, int index)
          Returns the index of a given element, starting the search from a given position in the list.
 int indexOf(java.lang.Object o)
           
 boolean isEmpty()
           
 java.util.Iterator<E> iterator()
           
 int lastIndexOf(E e, int index)
          Returns the last index of a given element, starting the search from a given position in the list and going backwards.
 int lastIndexOf(java.lang.Object o)
           
 java.util.ListIterator<E> listIterator()
           
 java.util.ListIterator<E> listIterator(int index)
           
 E remove(int index)
           
 boolean remove(java.lang.Object o)
           
 boolean removeAll(java.util.Collection<?> c)
           
 boolean retainAll(java.util.Collection<?> c)
           
 E set(int index, E e)
           
 int size()
           
 java.util.List<E> subList(int fromIndex, int toIndex)
           
 java.lang.Object[] toArray()
           
<T> T[]
toArray(T[] a)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CopyOnWriteArrayIdentityList

public CopyOnWriteArrayIdentityList()
Creates a new, empty instance of CopyOnWriteArrayList.


CopyOnWriteArrayIdentityList

public CopyOnWriteArrayIdentityList(java.util.Collection<? extends E> c)
Creates a new instance of CopyOnWriteArrayList and fills it with the contents of a given Collection.

Parameters:
c - the collection the elements of which are to be copied into the new instance.

CopyOnWriteArrayIdentityList

public CopyOnWriteArrayIdentityList(E[] array)
Creates a new instance of CopyOnWriteArrayList and fills it with the contents of a given array.

Parameters:
array - the array the elements of which are to be copied into the new instance.
Method Detail

add

public boolean add(E e)
Specified by:
add in interface java.util.Collection<E>
Specified by:
add in interface java.util.List<E>

add

public void add(int index,
                E e)
Specified by:
add in interface java.util.List<E>

addAll

public boolean addAll(java.util.Collection<? extends E> c)
Specified by:
addAll in interface java.util.Collection<E>
Specified by:
addAll in interface java.util.List<E>

addAll

public boolean addAll(int index,
                      java.util.Collection<? extends E> c)
Specified by:
addAll in interface java.util.List<E>

addAllAbsent

public int addAllAbsent(java.util.Collection<? extends E> c)
Adds to this CopyOnWriteArrayList all those elements from a given collection that are not yet part of the list.

Parameters:
c - the collection from which the potential new elements are taken.
Returns:
the number of elements actually added to this list.

addIfAbsent

public boolean addIfAbsent(E e)
Adds to this CopyOnWriteArrayList another element, given that this element is not yet part of the list.

Parameters:
e - the potential new element.
Returns:
true if the element was added, or false otherwise.

clear

public void clear()
Specified by:
clear in interface java.util.Collection<E>
Specified by:
clear in interface java.util.List<E>

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object

contains

public boolean contains(java.lang.Object o)
Specified by:
contains in interface java.util.Collection<E>
Specified by:
contains in interface java.util.List<E>

containsAll

public boolean containsAll(java.util.Collection<?> c)
Specified by:
containsAll in interface java.util.Collection<E>
Specified by:
containsAll in interface java.util.List<E>

equals

public boolean equals(java.lang.Object o)
Specified by:
equals in interface java.util.Collection<E>
Specified by:
equals in interface java.util.List<E>
Overrides:
equals in class java.lang.Object

get

public E get(int index)
Specified by:
get in interface java.util.List<E>

hashCode

public int hashCode()
Specified by:
hashCode in interface java.util.Collection<E>
Specified by:
hashCode in interface java.util.List<E>
Overrides:
hashCode in class java.lang.Object

indexOf

public int indexOf(E e,
                   int index)
Returns the index of a given element, starting the search from a given position in the list.

Parameters:
e - the element to search.
index - the index at which to start the search.
Returns:
the index of the element or null, if the element has not been found at or beyond the given start index.

indexOf

public int indexOf(java.lang.Object o)
Specified by:
indexOf in interface java.util.List<E>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Collection<E>
Specified by:
isEmpty in interface java.util.List<E>

iterator

public java.util.Iterator<E> iterator()
Specified by:
iterator in interface java.lang.Iterable<E>
Specified by:
iterator in interface java.util.Collection<E>
Specified by:
iterator in interface java.util.List<E>

lastIndexOf

public int lastIndexOf(E e,
                       int index)
Returns the last index of a given element, starting the search from a given position in the list and going backwards.

Parameters:
e - the element to search.
index - the index at which to start the search.
Returns:
the index of the element or null, if the element has not been found at or before the given start index.

lastIndexOf

public int lastIndexOf(java.lang.Object o)
Specified by:
lastIndexOf in interface java.util.List<E>

listIterator

public java.util.ListIterator<E> listIterator()
Specified by:
listIterator in interface java.util.List<E>

listIterator

public java.util.ListIterator<E> listIterator(int index)
Specified by:
listIterator in interface java.util.List<E>

remove

public E remove(int index)
Specified by:
remove in interface java.util.List<E>

remove

public boolean remove(java.lang.Object o)
Specified by:
remove in interface java.util.Collection<E>
Specified by:
remove in interface java.util.List<E>

removeAll

public boolean removeAll(java.util.Collection<?> c)
Specified by:
removeAll in interface java.util.Collection<E>
Specified by:
removeAll in interface java.util.List<E>

retainAll

public boolean retainAll(java.util.Collection<?> c)
Specified by:
retainAll in interface java.util.Collection<E>
Specified by:
retainAll in interface java.util.List<E>

set

public E set(int index,
             E e)
Specified by:
set in interface java.util.List<E>

size

public int size()
Specified by:
size in interface java.util.Collection<E>
Specified by:
size in interface java.util.List<E>

subList

public java.util.List<E> subList(int fromIndex,
                                 int toIndex)
Specified by:
subList in interface java.util.List<E>

toArray

public java.lang.Object[] toArray()
Specified by:
toArray in interface java.util.Collection<E>
Specified by:
toArray in interface java.util.List<E>

toArray

public <T> T[] toArray(T[] a)
Specified by:
toArray in interface java.util.Collection<E>
Specified by:
toArray in interface java.util.List<E>

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object


Copyright © 2007-2012 FuseSource, Corp.. All Rights Reserved.