## EDU.oswego.cs.dl.util.concurrent
Class CopyOnWriteArrayList.COWIterator

    java.lang.Object
      EDU.oswego.cs.dl.util.concurrent.CopyOnWriteArrayList.COWIterator

All Implemented Interfaces:
  java.util.Iterator, java.util.ListIterator

Enclosing class:
  CopyOnWriteArrayList

    protected static class CopyOnWriteArrayList.COWIterator

extends java.lang.Object
implements java.util.ListIterator

Field Summary
`protected java.lang.Object[]` `array` Snapshot of the array
`protected int` `cursor` Index of element to be returned by subsequent call to next.

Constructor Summary
`protected` `CopyOnWriteArrayList.COWIterator(java.lang.Object[] elementArray, int initialCursor)`

Method Summary
`void` `add(java.lang.Object o)` Not supported.
`boolean` `hasNext()`
`boolean` `hasPrevious()`
`java.lang.Object` `next()`
`int` `nextIndex()`
`java.lang.Object` `previous()`
`int` `previousIndex()`
`void` `remove()` Not supported.
`void` `set(java.lang.Object o)` Not supported.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### array

    protected final java.lang.Object[] array

  Snapshot of the array

### cursor

    protected int cursor

  Index of element to be returned by subsequent call to next.

Constructor Detail

### CopyOnWriteArrayList.COWIterator

    protected CopyOnWriteArrayList.COWIterator(java.lang.Object[] elementArray,
                                               int initialCursor)

Method Detail

### hasNext

    public boolean hasNext()

  Specified by:
    `hasNext` in interface `java.util.Iterator`
  Specified by:
    `hasNext` in interface `java.util.ListIterator`

### hasPrevious

    public boolean hasPrevious()

  Specified by:
    `hasPrevious` in interface `java.util.ListIterator`

### next

    public java.lang.Object next()

  Specified by:
    `next` in interface `java.util.Iterator`
  Specified by:
    `next` in interface `java.util.ListIterator`

### previous

    public java.lang.Object previous()

  Specified by:
    `previous` in interface `java.util.ListIterator`

### nextIndex

    public int nextIndex()

  Specified by:
    `nextIndex` in interface `java.util.ListIterator`

### previousIndex

    public int previousIndex()

  Specified by:
    `previousIndex` in interface `java.util.ListIterator`

### remove

    public void remove()

  Not supported. Always throws UnsupportedOperationException.

  Specified by:
    `remove` in interface `java.util.Iterator`
  Specified by:
    `remove` in interface `java.util.ListIterator`
  Throws:
    `java.lang.UnsupportedOperationException` - remove is not supported by this Iterator.

### set

    public void set(java.lang.Object o)

  Not supported. Always throws UnsupportedOperationException.

  Specified by:
    `set` in interface `java.util.ListIterator`
  Throws:
    `java.lang.UnsupportedOperationException` - set is not supported by this Iterator.

### add

    public void add(java.lang.Object o)

  Not supported. Always throws UnsupportedOperationException.

  Specified by:
    `add` in interface `java.util.ListIterator`
  Throws:
    `java.lang.UnsupportedOperationException` - add is not supported by this Iterator.