interface MutableListIterator<T> : 

An iterator over a mutable collection that supports indexed access. Provides the ability to add, modify and remove elements while iterating.



abstract fun add(element: T)

Adds the specified element element into the underlying collection immediately before the element that would be returned by next, if any, and after the element that would be returned by previous, if any. (If the collection contains no elements, the new element becomes the sole element in the collection.) The new element is inserted before the implicit cursor: a subsequent call to next would be unaffected, and a subsequent call to previous would return the new element. (This call increases by one the value \ that would be returned by a call to nextIndex or previousIndex.)


abstract fun hasNext(): Boolean

Returns true if the iteration has more elements.


abstract fun next(): T

Returns the next element in the iteration.


abstract fun remove()

Removes from the underlying collection the last element returned by this iterator.


abstract fun set(element: T)

Replaces the last element returned by next or previous with the specified element element.

Inherited Functions


abstract fun hasPrevious(): Boolean

Returns true if there are elements in the iteration before the current element.


abstract fun nextIndex(): Int

Returns the index of the element that would be returned by a subsequent call to next.


abstract fun previous(): T

Returns the previous element in the iteration and moves the cursor position backwards.


abstract fun previousIndex(): Int

Returns the index of the element that would be returned by a subsequent call to previous.

Extension Functions


fun <T> Iterator<T>.asSequence(): Sequence<T>

Creates a sequence that returns all elements from this iterator. The sequence is constrained to be iterated only once.


fun <T> Iterator<T>.forEach(operation: (T) -> Unit)

Performs the given operation on each element of this Iterator.


operator fun <T> Iterator<T>.iterator(): Iterator<T>

Returns the given iterator itself. This allows to use an instance of iterator in a for loop.


fun <T> Iterator<T>.withIndex(): Iterator<IndexedValue<T>>

Returns an Iterator wrapping each value produced by this Iterator with the IndexedValue, containing value and it's index.