org.apache.commons.collections4.list

## Class CursorableLinkedList.SubCursor<E>

- java.lang.Object
- - org.apache.commons.collections4.list.AbstractLinkedList.LinkedListIterator<E>
  - - org.apache.commons.collections4.list.CursorableLinkedList.Cursor<E>
    - - org.apache.commons.collections4.list.CursorableLinkedList.SubCursor<E>

- All Implemented Interfaces:
    Iterator<E>, ListIterator<E>, OrderedIterator<E>
  Enclosing class:
    CursorableLinkedList<E>

      protected static class CursorableLinkedList.SubCursor<E>
      extends CursorableLinkedList.Cursor<E>

  A cursor for the sublist based on LinkedSubListIterator.
  Since:
    3.2

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected AbstractLinkedList.LinkedSubList<E>` | `sub` The parent list

    - ### Fields inherited from class org.apache.commons.collections4.list.AbstractLinkedList.LinkedListIterator

      `current, expectedModCount, next, nextIndex, parent`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `CursorableLinkedList.SubCursor(AbstractLinkedList.LinkedSubList<E> sub, int index)` Constructs a new cursor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(E obj)` Adds an object to the list.
    `boolean` | `hasNext()`
    `boolean` | `hasPrevious()` Checks to see if there is a previous element that can be iterated to.
    `int` | `nextIndex()` Gets the index of the next element to be returned.
    `void` | `remove()` Removes the item last returned by this iterator.

    - ### Methods inherited from class org.apache.commons.collections4.list.CursorableLinkedList.Cursor

      `checkModCount, close, nodeChanged, nodeInserted, nodeRemoved`

    - ### Methods inherited from class org.apache.commons.collections4.list.AbstractLinkedList.LinkedListIterator

      `getLastNodeReturned, next, previous, previousIndex, set`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### sub

          protected final AbstractLinkedList.LinkedSubList<E> sub

      The parent list

  - ### Constructor Detail

    - #### CursorableLinkedList.SubCursor

          protected CursorableLinkedList.SubCursor(AbstractLinkedList.LinkedSubList<E> sub,
                                        int index)

      Constructs a new cursor.
      Parameters:
        `sub` - the sub list
        `index` - the index to start from

  - ### Method Detail

    - #### hasNext

          public boolean hasNext()

      Specified by:
        `hasNext` in interface `Iterator<E>`
      Specified by:
        `hasNext` in interface `ListIterator<E>`
      Overrides:
        `hasNext` in class `AbstractLinkedList.LinkedListIterator<E>`

    - #### hasPrevious

          public boolean hasPrevious()

      Description copied from interface: `OrderedIterator`
      Checks to see if there is a previous element that can be iterated to.
      Specified by:
        `hasPrevious` in interface `ListIterator<E>`
      Specified by:
        `hasPrevious` in interface `OrderedIterator<E>`
      Overrides:
        `hasPrevious` in class `AbstractLinkedList.LinkedListIterator<E>`
      Returns:
        `true` if the iterator has a previous element

    - #### nextIndex

          public int nextIndex()

      Description copied from class: `CursorableLinkedList.Cursor`
      Gets the index of the next element to be returned.
      Specified by:
        `nextIndex` in interface `ListIterator<E>`
      Overrides:
        `nextIndex` in class `CursorableLinkedList.Cursor<E>`
      Returns:
        the next index

    - #### add

          public void add(E obj)

      Description copied from class: `CursorableLinkedList.Cursor`
      Adds an object to the list. The object added here will be the new 'previous' in the iterator.
      Specified by:
        `add` in interface `ListIterator<E>`
      Overrides:
        `add` in class `CursorableLinkedList.Cursor<E>`
      Parameters:
        `obj` - the object to add

    - #### remove

          public void remove()

      Description copied from class: `CursorableLinkedList.Cursor`
      Removes the item last returned by this iterator.

      There may have been subsequent alterations to the list since you obtained this item, however you can still remove it. You can even remove it if the item is no longer in the main list. However, you can't call this method on the same iterator more than once without calling next() or previous().

      Specified by:
        `remove` in interface `Iterator<E>`
      Specified by:
        `remove` in interface `ListIterator<E>`
      Overrides:
        `remove` in class `CursorableLinkedList.Cursor<E>`

Copyright © 2001–2013 The Apache Software Foundation. All rights reserved.