Array은 선언할때 고정된 크기를 가지고 수정 가능

List는 선언할때 크기가 고정되지 않고 가변으로 동작되며 List<T> 의 경우 Inmutable로 삽입/수정/삭제 불가하며 MutableList를 사용하면 가능하다

 

[Array와 List 종류]

IntArray

DoubleArray

FloatArray

BooleanArray

Array<T>

List<T>

MutableList<T>

 

[IntArray]

var intArray: IntArray = IntArray(5)
intArray.set(0, 10)
intArray.set(1, 20)
intArray.set(2, 30)
intArray[3] = 40
intArray[4] = 50

Log.d("TAG", "intArray: ${intArray[4]}")
Log.d("TAG", "intArray: ${intArray.get(4)}")

 

[Array<T>]

초기화 방법 

var arr0: Array<Int> = Array<Int>(5) { 0 }

var arr1: Array<Int> = arrayOf<Int>(1,2,3,4,5)


arr1[0] = 2     // 수정가능

 

[List<T>]

List<T> 은 위에서 설명한 대로 수정이 불가능함.

 

초기화 방법 

var list0: List<Int> = List<Int>(5) { 0 }

var list1: List<Int> = listOf<Int>(1,2,3,4,5)

 

[MutableList<T>]

List<T> 가 삽입/수정/삭제가 불가하기 때문에 가능하게 하기 위해서는 MutableList<T> 사용해야됨.

 

초기화 방법

var numberMutableList: MutableList<Int> = mutableListOf<Int>()

 

사용방법

var numbers = listOf<Int>(1,2,3,4,5)
var numberMutableList: MutableList<Int> = mutableListOf<Int>()
numberMutableList.addAll(0, numbers)
Log.d("TAG", "MutableList Size : ${numberMutableList.size} / ${numberMutableList}")

 

결과

D/TAG: MutableList Size : 5 / [1, 2, 3, 4, 5]

 

[Array<T> -> MutableList<T>]

Array를 MutableList 에 대입시 초기화 단계에서 포인트 * 사용해서 초기화 가능함.

 

var arrayObjects: Array<TestClass> = arrayOf(testClass1, testClass2, testClass3)
var mutableClassList1: MutableList<TestClass> = mutableListOf<TestClass>(*arrayObjects)

for(i: Int in 0 until mutableClassList1.size) {
        mutableClassList1[i].index += 1
        Log.d("Test Class1", "TestClass1 Index : ${mutableClassList1[i].index}")
}


결과

D/Test Class1: TestClass1 Index : 2
D/Test Class1: TestClass1 Index : 3
D/Test Class1: TestClass1 Index : 4

 

[List<T> -> MutableList<T>]

var classList: List<TestClass> = listOf(testClass1, testClass2, testClass3)
var mutableClassList2: MutableList<TestClass> = mutableListOf<TestClass>()

mutableClassList2.add(testClass1)
mutableClassList2.add(testClass2)
mutableClassList2.add(testClass3)

또는
mutableClassList2.addAll(0, classList)

 

for(i: Int in 0 until mutableClassList2.size) {
        Log.d("Test Class2", "TestClass Index2 : ${mutableClassList2[i].index}")
}

 

[결과]

D/Test Class2: TestClass Index2 : 2
D/Test Class2: TestClass Index2 : 3
D/Test Class2: TestClass Index2 : 4

+ Recent posts