티스토리 뷰

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
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함