CopyOnWriteArrayListE


CopyOnWriteArrayList<E> java.util.concurrent

Java 5.0 cloneable serializable collection

This class is a threadsafe java.util.List implementation based on an array. Any number of read operations may proceed concurrently. All update methods are synchronized and make a completely new copy of the internal array, so this class is best suited to applications in which reads greatly outnumber updates. The Iterator of a CopyOnWriteArrayList operates on the copy of the array that was current when the iterator( ) method was called: it does not see any updates that occur after the call to iterator( ) and is guaranteed never to throw ConcurrentModificationException . Update methods of the Iterator and ListIterator interfaces are not supported and throw UnsupportedOperationException .

CopyOnWriteArrayList defines a few useful methods beyond those specified by the List interface. addIfAbsent( ) atomically adds an element to the list, but only if the list does not already contain that element. addAllAbsent( ) adds all elements of a collection that are not already in the list. Two new indexOf( ) and lastIndexOf( ) methods are defined that specify a starting index for the search. These provide a convenient alternative to using a subList( ) view when searching for repeated matches in a list.

Figure 16-78. java.util.concurrent.CopyOnWriteArrayList<E>

 public class  CopyOnWriteArrayList<E>  implements java.util.List<E>,          java.util.RandomAccess, Cloneable, Serializable {  // Public Constructors  public  CopyOnWriteArrayList  ( );        public  CopyOnWriteArrayList  (java.util.Collection<? extends E>  c  );        public  CopyOnWriteArrayList  (E[ ]  toCopyIn  );  // Public Instance Methods  public int  addAllAbsent  (java.util.Collection<? extends E>  c  );  synchronized  public boolean  addIfAbsent  (E  element  );  synchronized  public int  indexOf  (E  elem  , int  index  );        public int  lastIndexOf  (E  elem  , int  index  );  // Methods Implementing List  public boolean  add  (E  element  );  synchronized  public void  add  (int  index  , E  element  );  synchronized  public boolean  addAll  (java.util.Collection<? extends E>  c  );  synchronized  public boolean  addAll  (int  index  , java.util.Collection<? extends E>  c  );  synchronized  public void  clear  ( );  synchronized  public boolean  contains  (Object  elem  );        public boolean  containsAll  (java.util.Collection<?>  c  );        public boolean  equals  (Object  o  );        public E  get  (int  index  );        public int  hashCode  ( );        public int  indexOf  (Object  elem  );        public boolean  isEmpty  ( );  default:true  public java.util.Iterator<E>  iterator  ( );        public int  lastIndexOf  (Object  elem  );        public java.util.ListIterator<E>  listIterator  ( );        public java.util.ListIterator<E>  listIterator  (int  index  );        public boolean  remove  (Object  o  );  synchronized  public E  remove  (int  index  );  synchronized  public boolean  removeAll  (java.util.Collection<?>  c  );  synchronized  public boolean  retainAll  (java.util.Collection<?>  c  );  synchronized  public E  set  (int  index  , E  element  );  synchronized  public int  size  ( );        public java.util.List<E>  subList  (int  fromIndex  , int  toIndex  );  synchronized  public Object[ ]  toArray  ( );        public <T> T[ ]  toArray  (T[ ]  a  );  // Public Methods Overriding Object  public Object  clone  ( );        public String  toString  ( );   } 



Java In A Nutshell
Java In A Nutshell, 5th Edition
ISBN: 0596007736
EAN: 2147483647
Year: 2004
Pages: 1220

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net