mutable collection을 iterator로 바꾸면 mutableIterator가 됩니다.
MutableIterator은 remove()함수로 요소를 지울 수 있습니다.
next() 함수에 의해 반환된 마지막 값을 지웁니다.
add() 함수로 요소를 넣을 수 있습니다.
현재 가르키고 있는 요소 이전 위치에 새 요소를 추가한 후, 추가 된 요소로 포인트가 이동됩니다.
set() 함수로 요소를 replace 할 수 있습니다.
현재 가르키고 있는 요소를 repalce 합니다.
val numbers = mutableListOf("one", "two", "three", "four")
val mutableIterator = numbers.iterator()
mutableIterator.next() //one
mutableIterator.remove() //next()에 의해 반환된 마지막 값인 one을 지운다.
println("After removal: $numbers")
>>>
After removal: [two, three, four]
val numbers = mutableListOf("one", "four", "four")
val mutableListIterator = numbers.listIterator()
mutableListIterator.next() //one
// ⬇️
//one four four < 현재 첫번째 four을 가르키고 있음
mutableListIterator.add("two")
// one two four four < 현재 위치 이전에 요소 추가
// ⬇️
//one two four four < 추가된 요소로 포인트 이동
mutableListIterator.next() //첫번째 four
mutableListIterator.set("three")
//현재 가르키고 있는 four 을 three로 대체 합니다.
//one two three four
println(numbers)
>>>
[one, two, three, four]