728x90
오늘은 Kotlin에서 사용하는 자료구조 중 배열과 리스트의 종류에 대해 정리해보고자 합니다. 서로의 차이점을 위주로 정리해보도록 하겠습니다.
Array
- 정적 할당 → 선언 시 크기를 지정하거나 초기화를 진행해야 함.
- element의 수정이 가능
- element의 추가, 삭제는 불가능
val array: Array<Int> = arrayOf(1,2,3)
val array2 = arrayOf(1,"d",3.4f) //Array<Any>로 자동타입추론
array[0] = 3
array.set(1, 5) //set(index, value)
array[1] //5
array.get(0) //3
List
List는 수정이 불가능한 List와 수정이 가능한 mutableList로 나누어집니다.
- List(수정 불가능)
- get(), contains() 등의 함수가 쓰임
val list: List<Int> = listOf(1,2,3) val list2 = listOf(1,"d",11L) //List<Any>로 자동타입추론 list[0] = 2 //수정 불가능하기 때문에 Error 발생 var result = list.get(0)
- mutableList(수정 가능)
- add(), remove(), set(), clear() 등의 함수가 쓰임
val arrayList = arrayListOf<Int>() arrayList.add(10) arrayList.add(20) //arrayList의 element를 추가하더라도 주소가 변경되는 것이 아니기 때문에 val을 써도 element 추가가능 arrayList = arrayListOf() //val cannot be reassigned
- ArrayList
- 얼핏 보면 Array계열의 자료구조 같지만 Kotlin 공식문서를 보면 ArrayList는 MutableList 인터페이스를 상속받은 구현체임을 알 수 있다.
- 그렇기 때문에 크기가 자유롭고 값을 수정할 수 있다.
class ArrayList<E> : MutableList<E>, RandomAccess
지금까지 Array와 List, MutableList, 그리고 ArrayList의 특징을 정리해보았습니다.
각자의 차이점을 파악하여 효율적인 코딩 하시길 바랍니다! 감사합니다.
728x90
'Android(Kotlin)' 카테고리의 다른 글
[Kotlin Android] MotionLayout을 이용한 Twitter Splash 예제 (0) | 2022.06.04 |
---|---|
[Kotlin Android] 정적 변수와 메소드 :: Companion Object (0) | 2022.05.30 |
[Kotlin Android] 람다식 (0) | 2022.05.27 |
[Kotlin Android] 클래스 (0) | 2022.05.26 |
[Kotlin Android] 조건문과 반복문 (0) | 2022.05.24 |