Kotlin 배열 / 리스트 문법 정리

WWWKR·2025년 8월 27일
0

1. 배열/리스트 자르기

1) copyOfRange(from, to)

val arr = intArrayOf(1, 2, 3, 4, 5)
println(arr.copyOfRange(1, 4).joinToString()) // 2, 3, 4

➝ to 직전까지 (exclusive)

2) sliceArray(range)

println(arr.sliceArray(1..3).joinToString()) // 2, 3, 4

➝ range 그대로 (inclusive)

3) slice(range).toIntArray()

println(arr.slice(1..3).toIntArray().joinToString()) // 2, 3, 4

➝ 중간에 List 거침

2. 배열/리스트 변형

1) filter (조건으로 걸러내기)

val nums = (1..10).toList()
println(nums.filter { it % 2 == 0 }) // [2, 4, 6, 8, 10]

2) map (값 변환하기)

println(nums.map { it * it }) // 제곱 [1, 4, 9, ...]

3) mapIndexed (인덱스 포함)

println(nums.mapIndexed { idx, v -> "$idx:$v" })
// [0:1, 1:2, 2:3, ...]

3. 합치기 & 분할

1) plus (배열에 값 추가)

var arr2 = intArrayOf(1, 2)
arr2 = arr2.plus(3)  
println(arr2.joinToString()) // 1, 2, 3

2) zip (두 리스트 묶기)

val a = listOf("A", "B", "C")
val b = listOf(1, 2, 3)
println(a.zip(b)) // [(A,1), (B,2), (C,3)]

3) chunked (리스트를 일정 크기로 나누기)

val nums2 = (1..10).toList()
println(nums2.chunked(3)) 
// [[1,2,3], [4,5,6], [7,8,9], [10]]

4. 탐색 & 조건

1) any / all / none

println(nums.any { it > 5 })  // true
println(nums.all { it > 0 })  // true
println(nums.none { it < 0 }) // true

2) first / last / find

println(nums.first())             // 1
println(nums.last())              // 10
println(nums.find { it > 5 })     // 6
println(nums.findLast { it < 5 }) // 4

5. 정렬 & 집계

1) sorted / sortedDescending

println(listOf(3,1,4,1,5).sorted())          // [1,1,3,4,5]
println(listOf(3,1,4,1,5).sortedDescending()) // [5,4,3,1,1]

2) distinct (중복 제거)

println(listOf(1,2,2,3,3,3).distinct()) // [1, 2, 3]

3) groupBy (분류하기)

val words = listOf("apple", "ant", "banana", "bear")
println(words.groupBy { it.first() })
// {a=[apple, ant], b=[banana, bear]}

4) sum / average / count

println(nums.sum())     // 55
println(nums.average()) // 5.5
println(nums.count { it % 2 == 0 }) // 5
profile
안드로이드 개발자

0개의 댓글