코틀린은 자료형에 대해 명시적으로 선언할 수도 있고, 타입 추론을 통해 생략할 수도 있습니다.
코틀린의 자료형은 기본형과 참조형으로 구분할 수 있습니다. 기본형은 정수, 실수, 문자, 불리언 등의 원시 타입을 의미하며, 참조형은 배열, 컬렉션, 클래스, 인터페이스 등의 객체 타입을 의미합니다.
add
, remove
, set
등의 메소드로 요소를 추가하거나 삭제하거나 변경할 수 있습니다.arrayOfNulls
함수를 사용할 수 있습니다.fun main(args: Array<String>) {
val arr: ArrayList<Int> = arrayListOf<Int>()
arr.add(3)
arr.add(5)
arr.add(5)
arr[1] = 4
println(arr)
// output: [3, 4, 5]
val lis: List<Int> = listOf<Int>(244, 222, 111)
// lis.add X 추가 불가
// lis.set X 수정 불가
// lis[2] = 55 X 수정 불가
println(lis)
// output: [233, 222, 111]
val arra: Array<Int> = arrayOf<Int>(11, 11, 22)
// arra.add 추가 불가
arra[1] = 4
println(arra[0])
println(arra[1])
println(arra[2])
println(arra.size)
// output: 11
// 4
// 22
// 3
}
코틀린에서 MutableList와 ArrayList는 둘 다 수정 가능한 리스트를 생성하는 함수입니다. 하지만 MutableList는 인터페이스이고, ArrayList는 클래스입니다1. MutableList는 ArrayList 외에도 다른 구현체를 가질 수 있습니다. 예를 들어, LinkedList도 MutableList의 구현체입니다2. ArrayList는 내부적으로 배열로 데이터를 저장하고, LinkedList는 노드로 데이터를 저장합니다3. 따라서 두 클래스는 추가, 삭제, 검색 등의 연산에 대한 성능 차이가 있습니다3.
MutableList와 ArrayList의 차이점을 요약하면 다음과 같습니다:
fun main(args: Array<String>) {
val arr: ArrayList<Int> = arrayListOf<Int>()
arr.add(3)
arr.add(5)
arr.add(5)
arr[1] = 4
println(arr)
// output: [3, 4, 5]
val mutLis: MutableList<Int> = mutableListOf<Int>()
mutLis.add(10)
mutLis.add(9)
mutLis.add(8)
mutLis[1] = 0
println(mutLis)
// output: [10, 0, 8]
}