ListIterator


コトリン公式文書
ブログ参照

List Iterators


Listには、特別な反復器ListIdentratorが含まれています.
これにより、反復器を前後に双方向に巡回できます.
hasPrevious()関数とprevious()を使用してバックループできます.
さらに、nextIndex()およびpreviousIndex()を使用して、要素のインデックスを決定できます.
従来の反復器とは異なり、listi奇形器は最後の要素に達した後も使用できます.
val numbers = listOf("one", "two", "three", "four")
val listIterator = numbers.listIterator()
//listIterator을 마지막 까지 보냅니다. 
while (listIterator.hasNext()) listIterator.next()
println("Iterating backwards:")
//listIterator을 다시 앞으로 순회합니다.
while (listIterator.hasPrevious()) {
    print("Index: ${listIterator.previousIndex()}") //인덱스 사용 가능
    println(", value: ${listIterator.previous()}") //마지막 요소까지 도달해도 재사용 가능 
}

>>>
Iterating backwards:
Index: 3, value: four
Index: 2, value: three
Index: 1, value: two
Index: 0, value: one
反復器は作成時に最初の要素を無条件に指しますが、listi奇形器はインデックス値を直接追加することで必要な要素を示すことができます.
val numbers = listOf("one", "two", "three", "four")
val listIterator = numbers.listIterator(3)
println(listIterator.next()) //마지막 요소를 가르키게 했음

>>>
four