Kotlin에서 목록 필터링

Kailash Vaviya 2024년2월15일
  1. filter() 함수를 사용하여 Kotlin에서 목록 필터링
  2. filterIndexed() 함수를 사용하여 Kotlin에서 목록 필터링
  3. filterNot() 함수를 사용하여 Kotlin에서 목록 필터링
  4. filterIsInstance() 함수를 사용하여 Kotlin에서 목록 필터링
  5. filterNotNull() 함수를 사용하여 Kotlin에서 목록 필터링
  6. Partition() 함수를 사용하여 Kotlin에서 목록 필터링
Kotlin에서 목록 필터링

사람들의 세부 정보 모음이 있고 전체 모음에서 20세 이상의 사람만 가져오려고 한다고 가정합니다. 어떻게 하시겠습니까? 필터링으로!

필터링은 Kotlin에서 컬렉션을 처리하는 개념입니다. Kotlin은 조건자의 도움으로 컬렉션을 필터링할 수 있습니다.

술어는 컬렉션의 요소를 가져와 함수의 출력과 일치시키는 람다 함수입니다. 출력이 일치하면 조건자는 true를 반환합니다. 그렇지 않으면 false를 반환합니다.

Kotlin의 표준 라이브러리에는 초기 컬렉션을 변경하지 않고 필터링할 수 있는 몇 가지 기능이 있습니다. 따라서 변경 가능한 컬렉션과 읽기 전용 컬렉션 모두에서 필터링이 가능합니다.

또한 결과 컬렉션을 변수에 할당하거나 필요한 결과를 필터링한 후 연결하여 함수 또는 작업에서 사용할 수 있습니다. 이 문서에서는 Kotlin에서 목록을 필터링하기 위해 술어 표현식과 함께 사용할 다양한 함수를 안내합니다.

filter() 함수를 사용하여 Kotlin에서 목록 필터링

filter() 함수는 필터링을 위한 가장 기본적인 표준 라이브러리 함수입니다. 조건자 식을 수락하고 조건자의 실행 값과 일치하는 요소가 포함된 컬렉션을 반환합니다.

fun main() {
    val num = arrayListOf("two", "eleven", "eighteen", "thirty-nine", "fourty-five")
    val newNum = num.filter { it.length > 6 }
    println(newNum)
}

출력:

Kotlin 필터 함수 사용

실행 코드

filterIndexed() 함수를 사용하여 Kotlin에서 목록 필터링

Kotlin filter() 함수는 조건자와 요소의 값을 일치시킬 수 있습니다. 그러나 특정 인덱스에 있는 요소의 값은 확인할 수 없습니다.

filterIndexed() 함수는 목록 요소의 값과 인덱스를 모두 확인할 수 있습니다. 여기에서 술어 표현식은 인덱스와 값에 대해 두 개의 인수를 사용합니다.

이 예제에서는 위와 동일한 코드를 사용합니다. 하지만 이번에는 길이가 6보다 작고 인덱스 값이 1인 요소만 제거합니다.

fun main() {
    val num = arrayListOf("two", "eleven", "eighteen", "thirty-nine", "fourty-five")
    val newNum = num.filterIndexed { index, it -> (index!=1) && (it.length > 6) }
    println(newNum)
}

Kotlin filterIndexed 함수 사용

실행 코드

filterNot() 함수를 사용하여 Kotlin에서 목록 필터링

Kotlin 필터에 filterNot 기능을 사용하여 네거티브 필터를 적용할 수도 있습니다. 이 개념을 이해하려면 아래 예를 고려하십시오.

filterNot() 함수는 filter() 함수의 작업을 반대로 합니다. 조건자에 대해 false를 생성하는 모든 요소가 포함된 목록을 반환합니다.

fun main() {
    val num = arrayListOf("two", "eleven", "eighteen", "thirty-nine", "fourty-five")
    val newNum = num.filterNot { it.length > 6 }
    println(newNum)
}

Kotlin filterNot 함수 사용

실행 코드

filterIsInstance() 함수를 사용하여 Kotlin에서 목록 필터링

지금까지 값과 인덱스를 기반으로 Kotlin 목록을 필터링했습니다. filterIsInstance()를 사용하면 요소의 데이터 유형을 기반으로 필터링할 수 있습니다.

여기서는 여러 데이터 유형의 목록을 만든 다음 여기에서 문자열 값만 필터링합니다.

fun main() {
    val Str = listOf(12, null, "five", "nine", 11.0)
    println("Print only string values from the list:")
    Str.filterIsInstance<String>().forEach {
        println(it)
    }
}

출력:

Kotlin filterIsInstance 함수 사용

실행 코드

filterNotNull() 함수를 사용하여 Kotlin에서 목록 필터링

이 함수는 null이 아닌 요소만 필터링합니다. 모든 null 요소는 Kotlin filterNotNull() 함수를 사용할 때 필터링됩니다.

다음은 일부 null 및 null이 아닌 값을 사용하여 목록을 만드는 예입니다. 그런 다음 filterNotNull() 함수를 사용하여 새 목록에서 null이 아닌 요소만 필터링합니다.

fun main() {
    val Num = listOf("twelve", null, null, "fourteen", null, "eighteen")
    Num.filterNotNull().forEach {
        println(it.uppercase())
    }
}

출력:

Kotlin filterNotNull 함수 사용

실행 코드

Partition() 함수를 사용하여 Kotlin에서 목록 필터링

Kotlin에는 필터 기능 외에도 필터링을 가능하게 하는 partition() 기능이 있습니다. 둘 사이의 주요 차이점은 반환하는 목록의 수입니다.

필터 함수는 조건자와 일치하는 요소가 포함된 하나의 목록만 반환합니다. 그러나 partition() 함수는 두 개의 목록을 반환합니다. 하나는 술어와 일치하는 요소가 있는 목록이고 다른 하나는 술어와 일치하지 않는 요소가 있는 목록입니다.

목록을 만들고 partition() 함수를 사용하여 두 개의 개별 목록에 있는 모든 요소를 필터링합니다.

fun main() {
    val Num = listOf("eleven", "twelve", "thirteen", "seventeen", "eighteen")
    val (matchList, nonMatchList) = Num.partition { it.length < 7 }

    println(matchList)
    println(nonMatchList)
}

출력:

Kotlin 파티션 함수 사용

실행 코드

Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn

관련 문장 - Kotlin List