안드로이드 걸음마/안드로이드 첫번째 걸음
Kotlin 기초 : 안드로이드 앱 개발을 위한 시작 (13. Kotlin Collection)
hugoing
2023. 12. 31. 19:08
728x90
반응형
SMALL
안녕하세요, 여러분! 이번에는 Kotlin의 강력한 기능 중 하나인 '컬렉션(Collection)'에 대해 알아보려고 합니다. Kotlin의 컬렉션은 안드로이드 앱을 개발할 때 데이터를 효과적으로 다루고 관리하는 데 큰 도움이 됩니다. 그러면 바로 시작해봅시다!
1. 컬렉션 소개와 기본 개념
컬렉션은 데이터를 효율적으로 관리하고 조작하는 자료구조를 제공하는데, Kotlin은 List, Set, Map 등의 기본 인터페이스를 통해 다양한 형태의 컬렉션을 지원합니다. 이제 각 컬렉션의 기본 개념을 알아봅시다.
// List: 순서가 있는 컬렉션
val numbers: List<Int> = listOf(1, 2, 3, 4, 5)
// Set: 중복을 허용하지 않는 컬렉션
val uniqueNumbers: Set<Int> = setOf(1, 2, 3, 4, 5, 1, 2, 3) // 중복된 값은 자동으로 제거됨
// Map: Key-Value 쌍으로 이루어진 컬렉션
val userMap: Map<String, String> = mapOf(
"name" to "John",
"age" to "25",
"city" to "New York"
)
2. List: 순서가 있는 컬렉션
// List 기능 예제
val doubledNumbers = numbers.map { it * 2 }
val filteredNumbers = numbers.filter { it % 2 == 0 }
val sum = numbers.reduce { acc, num -> acc + num }
3. Set: 중복을 허용하지 않는 컬렉션
// Set 활용 예제
val uniqueSet = setOf(1, 2, 3, 4, 5, 1, 2, 3) // 중복 제거됨
4. Map: Key-Value 쌍으로 이루어진 컬렉션
// Map 사용 예제
val userName = userMap["name"] // "John" 반환
5. 컬렉션 함수와 람다 표현식 활용
// 컬렉션 함수와 람다 표현식 활용
val multipliedNumbers = numbers.map { it * 2 }
val evenNumbers = numbers.filter { it % 2 == 0 }
val total = numbers.reduce { acc, num -> acc + num }
6. 컬렉션의 확장 함수 사용하기
// 컬렉션의 확장 함수 사용
fun List<Int>.customFilter(predicate: (Int) -> Boolean): List<Int> {
return this.filter(predicate)
}
val evenNumbers = numbers.customFilter { it % 2 == 0 }
7. 컬렉션과 함께 사용하는 안드로이드 예제
// 안드로이드에서의 컬렉션 활용 예제
data class Item(val id: Int, val name: String)
class MyAdapter(val items: List<Item>) {
fun updateItems(newItems: List<Item>) {
items.clear()
items.addAll(newItems)
notifyDataSetChanged()
}
}
// RecyclerView의 Adapter를 생성하고 업데이트하는 예제
val recyclerViewAdapter = MyAdapter(emptyList())
// 사용자 데이터를 받아온 후 Adapter를 업데이트
val newItems = listOf(Item(1, "Item 1"), Item(2, "Item 2"), Item(3, "Item 3"))
recyclerViewAdapter.updateItems(newItems)
마무리
이제 여러분은 Kotlin의 강력한 컬렉션에 대한 기초를 다졌습니다. 실제 프로젝트에서 이러한 기능을 활용하면 코드를 더 간결하게 작성할 수 있고, 데이터를 효과적으로 관리할 수 있습니다. 다음 글에서는 좀 더 고급 주제를 다루면서 더욱 실용적인 Kotlin 기술들을 배워보도록 하겠습니다. 함께 공부해요! Happy coding! 🚀
728x90
반응형
LIST