Kotlin find, findLast - 특정 원소 찾기(탐색)
Notepad96
·2020. 11. 26. 05:29
300x250
1. find, findLast
find, findLast 함수는 조건의 일치하는 원소를 찾을 때 사용할 수 있다.
filter 함수가 조건의 일치하는 원소를 전부 찾았다면
find : 탐색을 앞에서부터 시작하여 만족하는 원소가 있다면 반환, 없다면 null
findLast : 탐색을 뒤에서부터 시작하여 만족하는 원소가 있다면 반환, 없다면 null
와 같이 하나의 결과를 받는다.
만약 2번 째, 4번 째처럼 n번 째의 조건을 만족하는 원소를 찾고자 한다면
filter 함수를 사용하여 전부 찾은 후 반환받은 List에서 n번 째를 찾으면 된다.
2. 코 드
환경 : Kotlin Version = 1.4.20, JVM
fun main(args : Array<String>) {
println("=============LIST================")
val ml = mutableListOf("abc", "sort", "book", "book4", "roll", "book2", "book3")
println(ml)
val res = ml.find { it.startsWith("bo") }
println("bo로 시작하는 문자열?(앞부터 검색) $res")
val res2 = ml.findLast { it.startsWith("bo") }
println("bo로 시작하는 문자열?(뒤부터 검색) $res2")
val res3 = ml.find { it.contains("ol") }
println("ol을 포함하는 문자열? $res3")
val res4 = ml.find { it.endsWith("lz")}
println("lz로 끝나는 문자열? $res4")
println("=============SET================")
val sm = mutableSetOf(4, 3, 2, 1, 5, 6, 7)
val rs = sm.find { it == 7 }
println(rs)
val rs2 = sm.find { it == 10 }
println(rs2) // 존재 않으므로 null
}
- String의 startsWith 함수를 사용하여 "bo"로 시작하는 문자열을 찾을 수 있다.
- String의 contains 함수를 사용하여 "ol"를 포함하고 있는 문자열을 찾을 수 있다.
- String의 endWith 함수를 사용하여 "lz"로 끝나는 문자열을 찾을 수 있다.
- Map은 find 함수가 없으므로 이와 같은 작업을 하고자하면 filter를 사용하면 된다.
3. 참 조
300x250
'Kotlin > Collections' 카테고리의 다른 글
Kotlin partition - 조건에 따라 2개로 분리하기 (0) | 2020.11.26 |
---|---|
Kotlin count - 조건에 만족하는 원소 개수 (0) | 2020.11.26 |
Kotlin map 함수 - 리스트 값들 변경 (0) | 2020.11.25 |
Kotlin any, all, none - 존재 여부 확인 (0) | 2020.11.25 |
Kotlin filter - 조건에 맞는 원소 검색 (0) | 2020.11.24 |