DeveloPiano

[Kotlin] indices 속성 완벽 가이드 본문

Develop/Kotlin

[Kotlin] indices 속성 완벽 가이드

DevPi 2025. 3. 3. 15:15
반응형

Thumbnail

코틀린(Kotlin)은 컬렉션과 배열을 쉽게 다룰 수 있도록 다양한 유틸리티 속성을 제공합니다. 그중 indices 속성은 리스트(List)나 배열(Array)의 유효한 인덱스 범위를 가져올 때 유용합니다. 이번 포스팅에서는 indices 속성의 개념과 실용적인 사용법을 살펴보겠습니다.


📌 indices 속성이란?

코틀린의 indices 속성은 리스트(List)나 배열(Array)의 유효한 인덱스 범위를 반환하는 기능을 합니다.

 

🔹 기본 문법

val indices: IntRange
  • indicesIntRange 타입을 반환하며, 이는 컬렉션의 첫 번째 인덱스부터 마지막 인덱스까지의 범위를 나타냅니다.

🛠 indices 사용 예제

1️⃣ 리스트(List)에서 indices 사용하기

fun main() {
    val list = listOf("Kotlin", "Java", "Python")
    println("리스트 인덱스 범위: ${list.indices}") // 출력: 리스트 인덱스 범위: 0..2
}

 

2️⃣ 배열(Array)에서 indices 사용하기

fun main() {
    val array = arrayOf(10, 20, 30, 40)
    println("배열 인덱스 범위: ${array.indices}") // 출력: 배열 인덱스 범위: 0..3
}

 

3️⃣ indices를 활용한 안전한 반복문

컬렉션을 반복할 때 indices를 사용하면 안전하게 인덱스를 활용할 수 있습니다.

fun main() {
    val names = listOf("Alice", "Bob", "Charlie")
    for (i in names.indices) {
        println("$i: ${names[i]}")
    }
}
// 출력:
// 0: Alice
// 1: Bob
// 2: Charlie

 

4️⃣ withIndex()와의 비교

indices 속성을 사용하면 직접 인덱스 범위를 가져올 수 있으며, withIndex()는 인덱스와 값을 동시에 활용할 수 있습니다.

fun main() {
    val numbers = listOf(100, 200, 300)
    
    // indices 사용
    for (i in numbers.indices) {
        println("$i: ${numbers[i]}")
    }
    
    // withIndex 사용
    for ((index, value) in numbers.withIndex()) {
        println("$index: $value")
    }
}

🎯 indices 사용 시 주의할 점

빈 컬렉션의 `` 빈 리스트나 배열의 경우 indices 속성은 0..-1을 반환합니다. 따라서 isEmpty()를 먼저 확인하는 것이 좋습니다.

fun main() {
    val emptyList = listOf<String>()
    println("빈 리스트 인덱스 범위: ${emptyList.indices}") // 출력: 빈 리스트 인덱스 범위: 0..-1
}

 

범위 초과 접근 방지 indices 속성을 활용하면 범위를 초과하는 인덱스 접근을 방지할 수 있습니다.

fun main() {
    val data = listOf(1, 2, 3)
    val index = 5
    if (index in data.indices) {
        println("값: ${data[index]}")
    } else {
        println("유효하지 않은 인덱스")
    }
}
// 출력: 유효하지 않은 인덱스

✨ 결론

코틀린의 indices 속성은 리스트나 배열의 유효한 인덱스 범위를 반환하는 유용한 기능입니다. 이를 활용하면 컬렉션을 더욱 안전하고 직관적으로 처리할 수 있습니다.

indices를 잘 활용하면:

  • 컬렉션의 유효한 인덱스 범위를 쉽게 가져올 수 있음
  • 인덱스를 활용한 반복문을 안전하게 작성 가능
  • 범위 초과 오류를 방지 가능

코틀린을 활용한 더욱 안전한 프로그래밍을 위해 indices 속성을 적극적으로 활용해 보세요! 🚀

반응형