Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- package
- 코틀린
- pushnamed
- 다트
- animation
- textstyle
- Collection
- import
- Android
- 콜렉션
- kotlin
- Class
- 함수
- 클래스
- crawler
- 파이썬
- DART
- map
- python
- variable
- 웹크롤러
- function
- 크롤러
- 플러터
- set
- ML
- List
- Flutter
- Yocto
- text
Archives
- Today
- Total
조용한 담장
코틀린(Kotlin) Collections : Iterators 본문
코틀린(kotlin) 의 반복자(iterator) 에 대해 살펴보자.
원문 https://kotlinlang.org/docs/reference/iterators.html 을 보며 정리.
iterator 는 Set 과 List 를 포함해 Iterable<T> interface 의 상속자들로 부터 얻을 수 있으며 iterator() 함수 호출로 이 동작이 이루어 진다.
얻은 iterator 는 첫번째 element 를 가리키고 마지막 element 까지 이동할 수 있으며 마지막에 도달하면 다시 사용할 수 없으므로 새로 iterator 를 얻어야 한다.
val numbers = listOf("one", "two", "three", "four")
val numbersIterator = numbers.iterator()
while (numbersIterator.hasNext()) {
println(numbersIterator.next())
}
// output:
// one
// two
// three
// four
for 를 사용하는 방법
val numbers = listOf("one", "two", "three", "four")
for (item in numbers) {
println(item)
}
forEach() 를 사용하는 방법
val numbers = listOf("one", "two", "three", "four")
numbers.forEach {
println(it)
}
List iterators
List 를 위한 iterator 는 LIstIterator 가 있다.
List 의 양방향 모두 이동이 가능한데 hasPrevious() 와 previous() 을 통해 거꾸로 이동이 가능하다.
nextIndex() 와 previousIndex() 를 통해 인덱스 기반 element 정보를 얻을 수 있다.
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()}")
}
// output:
// Iterating backwards:
// Index: 3, value: four
// Index: 2, value: three
// Index: 1, value: two
// Index: 0, value: one
iterator 를 양방향으로 쓸 수 있다는 것은 마지막 element 에 도달해도 다시 사용할 수 있다는 의미가 된다.
Mutable iterators
Mutable collections 의 경우 remove() 를 가지고 있는 MutableIterator 을 사용한다.
val numbers = mutableListOf("one", "two", "three", "four")
val mutableIterator = numbers.iterator()
mutableIterator.next()
mutableIterator.remove()
println("After removal: $numbers")
// output:
// After removal: [two, three, four]
MutableListIterator 을 사용하면 element 삽입, 대체 동작을 할 수 있다.
val numbers = mutableListOf("one", "four", "four")
val mutableListIterator = numbers.listIterator()
mutableListIterator.next()
mutableListIterator.add("two")
mutableListIterator.next()
mutableListIterator.set("three")
println(numbers)
// output:
// [one, two, three, four]
'kotlin' 카테고리의 다른 글
코틀린(Kotlin) Collections : 시퀀스(sequences) (0) | 2020.01.02 |
---|---|
코틀린(Kotlin) Collections : Ranges and Progressions (0) | 2020.01.02 |
코틀린(Kotlin) Collections : Constructing Collections (0) | 2020.01.02 |
코틀린(Kotlin) : 인라인 함수 (Inline Functions) (0) | 2020.01.02 |
코틀린(Kotlin) : 고차함수 와 람다 (Higher-Order Functions and Lambdas) (0) | 2020.01.02 |
Comments