✅ Kotlin에서 배열은 Java의 배열과 유사하지만, IntArray, Array<Int> 등 다양한 선언 방식이 존재하며 실전에서 매우 자주 사용됩니다.
🔹 배열 선언 방법 (기본형)
✅ 크기만 정해 선언 (초기값은 모두 0)
val arr = IntArray(5) // [0, 0, 0, 0, 0]
✅ 크기와 초기값 동시에 지정
val arr = IntArray(5) { 1 } // [1, 1, 1, 1, 1]
✅ 인덱스를 이용해 초기화
val arr = IntArray(5) { it * 2 } // [0, 2, 4, 6, 8]
🔹 다양한 자료형 배열
| 자료형 | 선언 예시 |
|---|---|
IntArray |
IntArray(5) { 0 } |
LongArray |
LongArray(5) { 0L } |
DoubleArray |
DoubleArray(5) { 0.0 } |
CharArray |
CharArray(5) { 'a' } |
BooleanArray |
BooleanArray(5) { false } |
일반 배열 (Array<T>) |
Array<String>(5) { "" }, Array<Int>(5) { 0 } |
- 주의:
IntArray등은 primitive 배열,Array<Int>는 객체 박싱됨 → 메모리/속도 차이 - 코테에서는 보통
IntArray,LongArray등을 우선 사용
🔹 배열 요소 접근 & 수정
val arr = IntArray(3) { it } // [0, 1, 2]
arr[1] = 10
println(arr[1]) // 10
🔹 배열 순회
✅ 인덱스 없이
for (x in arr) println(x)
✅ 인덱스 포함
for ((i, v) in arr.withIndex()) println("$i : $v")
🔹 배열 관련 메서드 (자주 사용)
val arr = intArrayOf(3, 1, 4, 1, 5)
arr.sorted() // 정렬된 새 리스트 반환
arr.sort() // 원본 정렬 (in-place)
arr.sum() // 총합
arr.average() // 평균 (Double)
arr.maxOrNull() // 최댓값 (nullable)
arr.minOrNull() // 최솟값 (nullable)
arr.count { it > 2 } // 조건 만족하는 개수
🔹 배열 변환
val list = arr.toList() // IntArray -> List<Int>
val newArr = list.toIntArray() // List<Int> -> IntArray
🔹 배열 정렬: 기본 / 조건 / 내림차순 및 고급 정렬
arr.sort() // 오름차순
arr.sortDescending() // 내림차순
val arr2 = arrayOf("apple", "kiwi", "banana")
arr2.sortBy { it.length } // 길이 기준 정렬
arr2.sortWith(compareBy<String> { it.length }.thenBy { it }) // 길이 → 알파벳순
🔸 sortBy vs sortWith 차이
sortBy { 키값 }: 단일 기준 정렬 (간결)sortWith(compareBy { 키1 }.thenBy { 키2 }): 다중 정렬 조건 가능- 예:
arr.sortBy { it.length } arr.sortWith(compareBy<String> { it.length }.thenBy { it })- 내부적으로
sortBy도sortWith(compareBy { ... })로 처리됨 - 단일 기준 → sortBy / 다중 조건 → sortWith
🔹 기타 실전 배열 기능
🔸 nullable 배열 선언
val arr = arrayOfNulls<Int>(5) // [null, null, null, null, null]
arr[0] = 42
🔸 배열 복사 / 슬라이싱
val copy = arr.copyOf()
val sliced = arr.copyOfRange(1, 3) // 인덱스 1~2
🔸 조건 필터링 / 중복 제거 / 포함 검사
val evens = arr.filter { it % 2 == 0 }
val unique = arr.distinct()
val hasThree = arr.contains(3)
✅ 요약 정리
- 기본 배열:
IntArray,Array<Int>등 선택 가능 - 선언:
IntArray(n) { 초기값 },.withIndex()로 인덱스 순회 - 메서드:
sort(),sum(),maxOrNull(),count {}등 자주 사용 - 변환:
toList(),toIntArray() - 정렬:
sortDescending(),sortBy,sortWith
다음은 시리즈 ⑤: 리스트(List) 정리로 이어집니다.
'Code Odyssey' 카테고리의 다른 글
| Kotlin 코딩테스트 문법 시리즈 ⑥ : Map & Set 정리 (0) | 2025.07.06 |
|---|---|
| Kotlin 코딩테스트 문법 시리즈 ⑤ : 리스트(List) 정리 (0) | 2025.07.05 |
| Kotlin 코딩테스트 문법 시리즈 ③ : 입출력 & 조건문 & 반복문 정리 (1) | 2025.07.03 |
| Kotlin 코딩테스트 문법 시리즈 ② : 문자열 (String) (1) | 2025.07.02 |
| Kotlin 코딩테스트 문법 시리즈 ① : 기본 자료형 & 변수 (0) | 2025.07.01 |