일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다트
- 콜렉션
- import
- map
- package
- Android
- text
- Flutter
- textstyle
- 플러터
- function
- python
- pushnamed
- 크롤러
- 코틀린
- variable
- Collection
- set
- Yocto
- crawler
- List
- 클래스
- 파이썬
- animation
- ML
- 함수
- 웹크롤러
- kotlin
- DART
- Class
- Today
- Total
조용한 담장
코틀린(Kotlin) Collections : Retrieving Single Elements 본문
코틀린의 collection 의 Retrieving Single Elements 에 대해 살펴보자.
원문 https://kotlinlang.org/docs/reference/collection-elements.html 을 보며 정리.
Retrieving by position
elementAt() 을 사용하여 collection 의 특정 위치의 element 를 얻는다.
첫번째 위치는 0, 마지막은 (size - 1) 이다.
indexed access operator 인 get() 와 [] 도 비슷한 동작을 한다.
val numbers = linkedSetOf("one", "two", "three", "four", "five")
println(numbers.elementAt(3))
val numbersSortedSet = sortedSetOf("one", "two", "three", "four")
println(numbersSortedSet.elementAt(0)) // elements are stored in the ascending order
// output:
// four
// four
first() 로 첫번째 element 를, last() 로 마지막 element를 얻는다.
val numbers = listOf("one", "two", "three", "four", "five")
println(numbers.first())
println(numbers.last())
// output:
// one
// five
잘못된 인덱스값으로 문제 상황을 피하기 위한 아래의 함수가 있다.
elementAtOrNull() collection 의 크기를 벗어나는 위치에 접근하면 null 을 리턴한다.
elementAtOrElse() 람다 함수를 인자로 받아 잘못된 위치에 접근하면 해당 위치 값에 대한 람다 함수의 결과를 리턴한다.
val numbers = listOf("one", "two", "three", "four", "five")
println(numbers.elementAtOrNull(5))
println(numbers.elementAtOrElse(5) { index -> "The value for index $index is undefined"})
// output:
// null
// The value for index 5 is undefined
Retrieving by condition
first() 와 last() 에 predicate 를 사용하여 해당 element 에 대해 값이 true 인 경우의 값만 얻을 수 있다.
val numbers = listOf("one", "two", "three", "four", "five", "six")
println(numbers.first { it.length > 3 })
println(numbers.last { it.startsWith("f") })
// output:
// three
// five
predicate 에 해당하는 element 가 없으면 exception 을 발생하는데 이를 피하기 위해 null을 리턴 해주는 firstOrNull() 와 lastOrNull() 함수가 있다.
val numbers = listOf("one", "two", "three", "four", "five", "six")
println(numbers.firstOrNull { it.length > 6 })
// output:
// null
firstOrNull(), lastOrNull() 와 같은 동작을 하지만 이름이 좀 더 명료한 find(), findLast() 를 사용할 수 있다.
val numbers = listOf(1, 2, 3, 4)
println(numbers.find { it % 2 == 0 })
println(numbers.findLast { it % 2 == 0 })
// output:
// 2
// 4
Random element
random() 를 이용하여 랜덤한 위치의 element 를 얻는다.
val numbers = listOf(1, 2, 3, 4)
println(numbers.random())
// output:
// 3
Checking existence
contains() 를 사용하여 element 가 collection 내에 있는지 확인한다.
containsAll() 는 argument collection 의 모든 element 가 포함되어 있는지 확인한다.
val numbers = listOf("one", "two", "three", "four", "five", "six")
println(numbers.contains("four"))
println("zero" in numbers)
println(numbers.containsAll(listOf("four", "two")))
println(numbers.containsAll(listOf("one", "zero")))
// output:
// true
// false
// true
// false
isEmpty() 와 isNotEmpty() 를 사용하여 collection 이 비어있는지 확인한다.
val numbers = listOf("one", "two", "three", "four", "five", "six")
println(numbers.isEmpty())
println(numbers.isNotEmpty())
val empty = emptyList<String>()
println(empty.isEmpty())
println(empty.isNotEmpty())
// output:
// false
// true
// true
// false
'kotlin' 카테고리의 다른 글
코틀린(Kotlin) Collections : Aggregate Operations (0) | 2020.04.08 |
---|---|
코틀린(Kotlin) Collections : Ordering (0) | 2020.04.07 |
코틀린(Kotlin) Collections : Retrieving Collection Parts (0) | 2020.04.06 |
코틀린(Kotlin) Collections : plus and minus Operators, Grouping (0) | 2020.03.27 |
코틀린(Kotlin) Collections : Filtering (0) | 2020.03.24 |