11. Arrays & Collections
배열과 컬렉션
치트시트
배열은
arrayOf,IntArray, 잘 안 씀기본은 불변 컬렉션(listOf, setOf, mapOf)
수정 필요 시
mutableListOf등 사용인덱스와 값:
withIndex()함수형 연산:
filter,map,mapNotNull,sortedBy,count,any,all서버 개발: DTO 변환, 응답 가공, 캐싱된 데이터 필터링에 활용
1) 배열 (Array)
잘 쓰이지 않지만 문법적으로 제공
arrayOf,intArrayOf,Array(size) { init }로 생성
val arr = arrayOf(1, 2, 3)
val arr2 = IntArray(3) { it * 2 } // [0, 2, 4]인덱스 접근:
arr[i]인덱스 범위:
arr.indices인덱스와 값 동시 접근:
for ((i, v) in arr.withIndex()) { ... }
👉 서버 개발에서는 배열 대신 대부분 컬렉션 사용.
2) 컬렉션 기본
불변 / 가변
listOf,setOf,mapOf: 불변 컬렉션mutableListOf,mutableSetOf,mutableMapOf: 가변 컬렉션
👉 불변 컬렉션을 기본으로 두고, 내부에서만 가변을 쓰는 게 실무 베스트 프랙티스.
3) 컬렉션 팩토리 & 유틸
타입 추론 가능 → 코드 간결화
4) 함수형 연산 (고차 함수)
필터링, 매핑, 집계 API 제공
널 제거:
mapNotNull정렬:
sortedBy,sortedByDescending집계:
count,any,all,none
5) 서버 개발 활용 패턴
A. DTO 변환
B. 캐싱된 데이터 필터링
C. API 응답 변환
👉 컬렉션 파이프라인을 활용하면 스트림 API보다 코드가 더 짧고 읽기 쉬움.
Last updated