val arr1 = arrayListOf(1)
val arr2 = arr1 // 배열 참조
arr2.add(2)
코틀린에서 배열을 복사하여 다른 배열을 생성하고자 할때, 위와 같이
새로운 배열 = 복사할 배열
형태로 선언하게 되면 C언어의 포인터처럼 주소값을 참조하게 되어
새로운 배열의 변경사항이 복사한 배열에도 적용된다.
val arr3 = arrayListOf(1)
val arr4 = arrayListOf<Int>()
arr4.addAll(arr3) // 배열 복사
arr4.add(2)
따라서 addAll을 사용하면
기존의 배열을 복사할 수 있다.
fun main() = with(Scanner(System.`in`)){
val arr1 = arrayListOf(1)
val arr2 = arr1 // 배열 참조
arr2.add(2)
println("arr1 : $arr1 , arr2 : $arr2")
val arr3 = arrayListOf(1)
val arr4 = arrayListOf<Int>()
arr4.addAll(arr3) // 배열 복사
arr4.add(2)
println("arr3 : $arr3 , arr4 : $arr4")
}
arr1을 참조한 arr2에 2를 추가하면 arr1, arr2 둘다 추가 된것을 확인할 수 있고
단지 복사하여 사용하고 싶다면 addAll을 사용해야한다.