Hanbit the Developer
Kotlin Documentation | Iterators 본문
Category: Standard library - Collections
문서 링크: https://kotlinlang.org/docs/iterators.html
구체적인 자료 구조를 알지 못해도 연속된 아이템을 돌 수 있는 메커니즘을 제공한다. 아이템들을 출력하거나, 모든 아이템의 부호를 바꾸는 등의 작업을, 컬렉션의 종류와 상관 없이, 하나의 함수로 구현이 가능하다.
Iterable<T>을 통해 제공되는 iterator()를 통해 반복자에 접근할 수 있다.
val numbers = listOf("one", "two", "three", "four")
val numbersIterator = numbers.iterator()
while (numbersIterator.hasNext()) {
println(numbersIterator.next())
}
단, 한번 끝까지 돌게 되면 새 반복자를 생성해야 다시 돌 수 있다.
for, forEach를 통한 아래 코드는 위 반복자를 사용한 코드와 같다.
val numbers = listOf("one", "two", "three", "four")
for (item in numbers) {
println(item)
}
val numbers = listOf("one", "two", "three", "four")
numbers.forEach {
println(it)
}
List iterators
리스트를 위한 특별한 구현체인 ListIterator는 앞, 뒤 방향으로의 반복을 지원한다.
val numbers = listOf("one", "two", "three", "four")
val listIterator = numbers.listIterator()
while (listIterator.hasNext()) listIterator.next()
println("Iterating backwards:")
while (listIterator.hasPrevious()) {
print("Index: ${listIterator.previousIndex()}")
println(", value: ${listIterator.previous()}")
}
Mutable iterators
mutable collection에는 MutableIterator가 존재하며, remove() 함수를 제공한다.
또한 MutableListIterator는 추가로 add(), set() 함수를 제공한다.
'Kotlin' 카테고리의 다른 글
Kotlin Documentation | Sequences (0) | 2023.05.24 |
---|---|
Kotlin Documentation | Ranges and progressions (0) | 2023.05.24 |
Kotlin Documentation | Constructing collections (0) | 2023.05.24 |
Kotlin Documentation | Collections overview (0) | 2023.05.24 |
Kotlin Documentation | Operator overloading (0) | 2023.05.23 |