나만 보는 일기장

[Kotlin] IntArray와 Array<Int>의 차이점 본문

개발/기타

[Kotlin] IntArray와 Array<Int>의 차이점

Patrick0422 2022. 11. 24. 14:51

IntArray는 컴파일시 int[] 형태로 변환되고, Array<Int>는 Integer[]로 변환됩니다.

 

https://stackoverflow.com/questions/45090808/intarray-vs-arrayint-in-kotlin#:~:text=The%20performance%20difference%20between%20val%20t%20%3D%20IntArray(10_000_000)%20%7B%20it%20%7D%20and%20val%20t%20%3D%20Array%3CInt%3E(10_000_000)%20%7B%20it%20%7D%20is%2020%20milliseconds%20vs%202.5%20seconds%20on%20a%202019%20mbp 

 

IntArray vs Array<Int> in Kotlin

I'm not sure what the difference between an IntArray and an Array<Int> is in Kotlin and why I can't used them interchangeably: I know that IntArray translates to int[] when targeting the JVM...

stackoverflow.com

위 글의 코멘트에 따르면 19년형 맥북 프로에서

 

val t = IntArray(10_000_000) { it } 와 

val t = Array<Int>(10_000_000) { it } 의 속도는 각각 20ms vs 2.5sec로, 

 

원시타입을 사용하는 IntArray가 성능 면에서 더 빠르다고 합니다.

 

 

val arr = IntArray(10)
println(arr.joinToString()) // 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

IntArray는 배열의 크기만을 파라미터로 받아 알아서 내부 요소들을 0으로 초기화 해주는 생성자가 존재하지만,

val arr = Array(10) { 0 }
val arr = arrayOfNulls<Int>(10) // Array<Int?>

Array<Int>는 내부 요소를 무조건적으로 채워주거나, Array<Int?> 형식으로 선언해 나중에 null을 처리해야 합니다.

 

 

 

https://stackoverflow.com/questions/45090808/intarray-vs-arrayint-in-kotlin

 

IntArray vs Array<Int> in Kotlin

I'm not sure what the difference between an IntArray and an Array<Int> is in Kotlin and why I can't used them interchangeably: I know that IntArray translates to int[] when targeting the JVM...

stackoverflow.com

 

Comments