0Pricing
Kotlin Academy · 강의

컬렉션의 filter, map, find

표준 라이브러리 함수와 람다를 사용해 컬렉션을 변환하고 필터링해 보세요.

컬렉션의 filter, map, find은(는) CoddyKit의 무료 Kotlin Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Kotlin Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

세 가지 핵심 함수

filter는 조건자와 일치하는 요소를 유지합니다. map은 각 요소를 변환합니다. find는 일치하는 첫 번째 요소를 반환합니다(없으면 널). 이 세 함수만으로도 컬렉션 처리의 대부분을 해결할 수 있습니다.

filter 기초

filter는 조건자가 true인 요소만 포함하는 새 목록을 반환합니다.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5, 6)
    val evens = nums.filter { it % 2 == 0 }
    println(evens) // [2, 4, 6]
}

map 기초

map은 크기가 같고 각 요소가 람다에 의해 변환된 새 목록을 반환합니다.

fun main() {
    val nums = listOf(1, 2, 3)
    val squares = nums.map { it * it }
    println(squares) // [1, 4, 9]
}

find 기초

find는 조건자와 일치하는 첫 번째 요소를 반환하고, 일치하는 요소가 없으면 널을 반환합니다.

fun main() {
    val words = listOf("apple", "banana", "cherry")
    val match = words.find { it.startsWith("b") }
    println(match) // banana
}

filter와 map 연결

점 표기법으로 두 함수를 결합하여 표현력 있는 데이터 처리 흐름을 만들 수 있습니다.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5)
    val result = nums.filter { it % 2 == 1 }.map { it * 10 }
    println(result) // [10, 30, 50]
}

데이터 클래스 필터링

filter와 map은 데이터 클래스 인스턴스의 컬렉션에서 특히 유용합니다.

data class User(val name: String, val age: Int)
fun main() {
    val users = listOf(User("Ana", 17), User("Ben", 25), User("Cal", 31))
    val adultNames = users.filter { it.age >= 18 }.map { it.name }
    println(adultNames) // [Ben, Cal]
}

find와 first 비교

find는 널 허용 값을 반환하지만 first { ... }는 일치하는 요소가 없으면 예외를 발생시킵니다. 선택적인 일치 결과에는 find를 사용하십시오.

fun main() {
    val nums = listOf(1, 2, 3)
    println(nums.find { it > 10 })  // null
    // nums.first { it > 10 }       // throws NoSuchElementException
    println(nums.firstOrNull { it > 10 }) // null (alias of find)
}

filterNot과 filterNotNull

filterNot은 조건자의 결과를 반대로 바꿉니다. filterNotNull은 널 허용 값 목록에서 널 항목을 제거합니다.

fun main() {
    val nums = listOf(1, 2, 3, 4)
    println(nums.filterNot { it % 2 == 0 }) // [1, 3]
    val maybe: List<String?> = listOf("a", null, "b", null, "c")
    println(maybe.filterNotNull()) // [a, b, c]
}

mapNotNull

mapNotNull은 변환한 다음 널을 제거하므로 구문 분석에 유용합니다.

fun main() {
    val raw = listOf("1", "two", "3", "four")
    val numbers = raw.mapNotNull { it.toIntOrNull() }
    println(numbers) // [1, 3]
}

실전 데이터 처리 흐름

filter, map, 마지막 축약 연산을 결합한 간단한 예입니다.

data class Product(val name: String, val price: Double, val inStock: Boolean)
fun main() {
    val products = listOf(
        Product("Pen", 1.0, true),
        Product("Book", 12.0, false),
        Product("Lamp", 25.0, true)
    )
    val total = products
        .filter { it.inStock }
        .map { it.price }
        .sum()
    println("Available total: $total") // 26.0
}

연산 선택하기

부분집합이 필요하면 filter, 변환하려면 map, 선택적인 단일 일치 결과가 필요하면 find를 사용하고, 필요할 때 이들을 연결하십시오.

fun main() {
    val words = listOf("alpha", "beta", "gamma", "delta")
    println(words.filter { it.length == 5 })       // [alpha, gamma, delta]
    println(words.map { it.uppercase() })           // [ALPHA, BETA, GAMMA, DELTA]
    println(words.find { it.endsWith("ta") })       // beta
}

빠른 확인

람다로 변환한 요소를 포함하는 새 컬렉션을 반환하는 함수는 무엇입니까?

복습

filter는 선택하고, map은 변환하며, find는 첫 번째 일치 항목을 찾습니다(없으면 널). 이들을 데이터 처리 흐름에서 자유롭게 결합하고, 선택적 값을 처리할 때는 mapNotNull과 filterNotNull을 사용하십시오.

자주 묻는 질문

“컬렉션의 filter, map, find” 강의는 무료인가요?

네 — “컬렉션의 filter, map, find” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Kotlin Academy 강의 전체를 잠금 해제할 수 있습니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“컬렉션의 filter, map, find”에서 뭘 배우나요?

표준 라이브러리 함수와 람다를 사용해 컬렉션을 변환하고 필터링해 보세요. 브라우저에서 직접 실행하는 실습 코드로 Kotlin Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Kotlin Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Kotlin Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“컬렉션의 filter, map, find” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Kotlin Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Kotlin Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 람다란 무엇인가요? 문법과 타입
  2. 함수에 람다 전달하기
  3. it: 암시적 매개변수
  4. 컬렉션의 filter, map, find
← Kotlin Academy(으)로 돌아가기