티스토리 뷰
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
'안드로이드 첫번째 걸음' 카테고리의 다른 글
Kotlin 기초 : 안드로이드 앱 개발을 위한 시작 (12. 프래그먼트 간의 통신과 더 복잡한 UI 패턴) (2) | 2023.12.30 |
---|---|
Kotlin 기초 : 안드로이드 앱 개발을 위한 시작 (11. ToDo 앱 예제) (4) | 2023.12.29 |
Kotlin 기초 : 안드로이드 앱 개발을 위한 시작 (10. 프래그먼트(Fragment)와 그 사용법) (0) | 2023.12.28 |
Kotlin 기초 : 안드로이드 앱 개발을 위한 시작 (9. 화면 간 전환과 다양한 액티비티 생명주기) (0) | 2023.12.27 |
Kotlin 기초 : 안드로이드 앱 개발을 위한 시작 (8. 사용자 입력과 이벤트 처리) (0) | 2023.12.26 |
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- UI스레드
- MVVM패턴
- 안드로이드 앱 개발
- 코틀린
- cipher
- kotlin
- 클린아키텍처
- 비동기처리
- 안드로이드앱개발
- RoomDatabase
- 내부데이터베이스
- Android
- 부동산
- 경매
- coroutine
- 코루틴
- 사이버보안
- 모듈화
- fragment생명주기
- 디자인패턴
- RxJava
- 생명주기
- 기초
- 안드로이드기초
- 부동산 경매
- 안드로이드
- 안드로이드개발
- 비동기
- Fragment
- 앱개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함