관리할 객체들(값들)이 있고 나중에 추가, 삭제 등을 하지 않을 경우 :
arrayOf
var 배열이름 : Array<배열에 담기는 값의 타입> = Array<배열에 담기는 값의 타입>(배열의 크기){초기값}
관리할 객체들(값들)이 없으며 나중에 추가, 삭제 등을 하는 경우 :
ArrayList
, mutableListOf
관리할 객체들(값들)이 있고 나중에 추가, 삭제 등을 하는 경우 :
ArrayList
, mutableListOf
관리할 객체들(값들)이 있고 나중에 추가, 삭제 등을 하지 않고
관리하는 값을 변경하지 못하게 강제하고자 할 때 :
listOf
val arr1: Array<Int> = arrayOf()
val arr2: Array<Int> = arrayOf(10)
println("before arr1: ${arr1.toList()}")
println("before arr2: ${arr2.toList()}")
arr1.plus(1)
arr2.plus(11)
println("after arr1: ${arr1.toList()}")
println("after arr2: ${arr2.toList()}")
val arr1: ArrayList<Int> = arrayListOf()
val arr2: ArrayList<Int> = arrayListOf(10)
println("before arr1: ${arr1.toList()}")
println("before arr2: ${arr2.toList()}")
arr1.add(1)
arr2.add(11)
println("after arr1: ${arr1.toList()}")
println("after arr2: ${arr2.toList()}")
val arr1: MutableList<Int> = mutableListOf()
val arr2: MutableList<Int> = mutableListOf(10)
println("before arr1: ${arr1}")
println("before arr2: ${arr2}")
arr1.add(1)
arr2.add(11)
println("after arr1: ${arr1}")
println("after arr2: ${arr2}")
val arr1: List<Int> = listOf()
val arr2: List<Int> = listOf(10)
println("before arr1: ${arr1}")
println("before arr2: ${arr2}")
arr1.plus(1)
arr2.plus(11)
println("after arr1: ${arr1}")
println("after arr2: ${arr2}")
var num = arr2.get(0)
println("arr2.get(0) : $num")
arrayOf
와 listOf
는 둘 다 컬렉션을 생성하기 위해 사용되는 함수이다
그러나 그들은 서로 다른 유형의 컬렉션을 반환한다
arrayOf
함수는 주어진 요소들로 구성된 배열을 생성한다
반환된 값은 수정 가능한 Array 타입이다
이는 배열의 크기가 고정되어 있고 요소를 추가하거나 제거할 수 없다는 의미이다
val arr: Array<Int> = arrayOf(10)
println("before arr: ${arr.toList()}")
arr[0] = 20
println("after arr : ${arr.toList()}")
listOf
함수는 주어진 요소들로 구성된 읽기 전용 리스트를 생성한다 val arr: List<Int> = listOf(10)
println("before arr: ${arr.toList()}")
arr[0] = 20 // 컴파일 오류: 요소 변경 불가능
println("after arr : ${arr.toList()}")
arrayOf
는 수정 가능한 배열을 생성하고,listOf
는 수정할 수 없는 읽기 전용 리스트를 생성