네, Kotlin의 map
함수에 대해 다양한 예시와 함께 자세히 설명드리겠습니다.
- 간단한 변환
map
은 가장 기본적으로 컬렉션의 각 요소를 다른 값으로 변환하는 데 사용됩니다.val numbers = listOf(1, 2, 3, 4, 5) val doubledNumbers = numbers.map { it * 2 } // doubledNumbers: ListOf(2, 4, 6, 8, 10)
- 문자열 처리
map
은 문자열 처리에 유용합니다.val names = listOf("Alice", "Bob", "Charlie") val upperNames = names.map { it.uppercase() } // upperNames: ListOf("ALICE", "BOB", "CHARLIE") val lengths = names.map { it.length } // lengths: ListOf(5, 3, 7)
- 객체 변환
map
을 사용하여 객체를 다른 형태의 객체로 변환할 수 있습니다.data class Person(val name: String, val age: Int) val people = listOf(Person("Alice", 25), Person("Bob", 30), Person("Charlie", 35)) val ages = people.map { it.age } // ages: ListOf(25, 30, 35)
- 조건부 변환
map
과if-else
를 함께 사용하여 조건부 변환을 수행할 수 있습니다.val numbers = listOf(1, 2, 3, 4, 5) val stringNumbers = numbers.map { if (it % 2 == 0) "Even: $it" else "Odd: $it" } // stringNumbers: ListOf("Odd: 1", "Even: 2", "Odd: 3", "Even: 4", "Odd: 5")
- 중첩된 컬렉션 평탄화
flatMap
을 사용하여 중첩된 컬렉션을 평탄화할 수 있습니다.val nestedNumbers = listOf(listOf(1, 2), listOf(3, 4, 5), listOf(6)) val flatNumbers = nestedNumbers.flatMap { it } // flatNumbers: ListOf(1, 2, 3, 4, 5, 6)
- 인덱스 사용
mapIndexed
를 사용하여 인덱스와 값을 모두 고려한 변환을 수행할 수 있습니다.val names = listOf("Alice", "Bob", "Charlie") val indexedNames = names.mapIndexed { index, name -> "$index: $name" } // indexedNames: ListOf("0: Alice", "1: Bob", "2: Charlie")
이렇게 map
은 다양한 방식으로 활용될 수 있으며, 컬렉션의 각 요소를 원하는 형태로 변환하는 데 매우 유용합니다. 람다 표현식과 조합하여 간결하고 가독성 있는 코드를 작성할 수 있습니다.
'Jetpack Compose-Kotlin' 카테고리의 다른 글
13. Kotlin-동적 렌더링 (0) | 2024.05.11 |
---|---|
12. Kotlin-$ (0) | 2024.05.11 |
10. Kotlin-ListOf (0) | 2024.05.11 |
09. Kotlin-Modifier (0) | 2024.05.11 |
08. Kotlin-변수, 매개변수, 인수, 인스턴스, 클래스 (0) | 2024.05.11 |