코틀린 컬렉션 마스터링
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 코틀린 컬렉션을 사용하는 중급 이상 개발자
- 리드-온리 vs 가변 컬렉션의 차이를 이해하고 싶은 개발자
- 안전한 코드 작성과 데이터 조작을 학습하고자 하는 프로그래머
- 난이도: 중간 (기본 문법 이해 필요)
핵심 요약
- 리드-온리와 가변 컬렉션의 명확한 구분 (
List
,Set
,Map
등) - 가변 컬렉션은
MutableList
,MutableSet
,MutableMap
과 같이 명시적으로 선언 val
로 선언된 컬렉션은 불변 상태 유지 (예:val numbers = listOf(1, 2, 3)
)- 컬렉션 연산 예시:
sorted()
,map()
,filter()
등
섹션별 세부 요약
1. List (리스트)
- 순서가 유지되고 중복 허용
- 인덱스로 요소 접근 (
list[0]
) - 예시:
val numbers = listOf(1, 2, 3, 2, 4)
→[1, 2, 3, 2, 4]
- 가변 리스트는
MutableList
로 선언 (mutableListOf()
)
2. Set (세트)
- 중복 요소 제거, 순서 보장 X
- 예시:
setOf(1, 2, 3, 2, 4)
→[1, 2, 3, 4]
- 가변 세트는
MutableSet
사용 (mutableSetOf()
)
3. Map (맵)
- 키-값 쌍 저장, 키는 유니크
- 예시:
mapOf(1 to "Alice", 2 to "Bob")
→{1=Alice, 2=Bob}
- 가변 맵은
MutableMap
사용 (mutableMapOf()
)
4. 정렬, 뒤집기, 섞기
sorted()
→ 정렬 (["Alice", "Bob", "Charlie"]
)reversed()
→ 순서 뒤집기 (["Bob", "Alice", "Charlie"]
)shuffled()
→ 무작위 순서 (["Charlie", "Bob", "Alice"]
)
5. 요소 변환
map { it * 2 }
→ 리스트 요소 변환 ([2, 4, 6]
)mapValues { it.value.uppercase() }
→ 맵 값 변환 ({1=ALICE, 2=BOB}
)
6. 중첩 컬렉션 펼치기
flatten()
→List
를> List
로 펼침 ([1, 2, 3, 4]
)
7. 필터링
filter { it % 2 == 0 }
→ 짝수만 추출 ([2, 4]
)partition { it % 2 == 0 }
→ 짝수/홀수 분할 ([2, 4]
,[1, 3, 5]
)
결론
val
로 컬렉션 선언하여 불변 상태 유지 (예:val numbers = listOf(1, 2, 3)
)- 가변 연산이 필요한 경우
MutableList
,MutableSet
,MutableMap
사용 - Kotlin 표준 라이브러리의
sorted()
,map()
,filter()
등 활용 - 리드-온리/가변 컬렉션의 구분을 통해 코드 안정성 향상