[Kotlin] indices 속성 완벽 가이드
코틀린(Kotlin)은 컬렉션과 배열을 쉽게 다룰 수 있도록 다양한 유틸리티 속성을 제공합니다. 그중 indices 속성은 리스트(List)나 배열(Array)의 유효한 인덱스 범위를 가져올 때 유용합니다. 이번 포스팅에서는 indices 속성의 개념과 실용적인 사용법을 살펴보겠습니다.
📌 indices 속성이란?
코틀린의 indices 속성은 리스트(List)나 배열(Array)의 유효한 인덱스 범위를 반환하는 기능을 합니다.
🔹 기본 문법
val indices: IntRange
- indices는 IntRange 타입을 반환하며, 이는 컬렉션의 첫 번째 인덱스부터 마지막 인덱스까지의 범위를 나타냅니다.
🛠 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 속성을 적극적으로 활용해 보세요! 🚀