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번 째를 찾으면 된다.

 

 

 

 

Kotlin filter - 조건에 맞는 원소 검색

1. filter filter 함수는 Array, List, Set, Map 에서 사용할 수 있으며 특정 조건을 주면 해당 조건에 만족하는 원소들을 구할 수 있다. 해당 결과는 for문과 if식을 사용하면 똑같은 결과를 얻을 수도 있지

notepad96.tistory.com

 

 

 

 

 


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. 참 조

 

 

MutableList - Kotlin Programming Language

 

kotlinlang.org

 

 

300x250