코틀린 개발하다보면 Array, List, ArrayList 간에 변환을 해야하는 경우가 꽤 많은데요 "음.. 어떻게 했더라... " 자주 찾아보게 되더라구요. 그래서 각각의 변환하는 방법을 한곳에 모아보려고 합니다. 반복문 사용은 ...

[안드로이드] 코틀린 Array ↔ List ↔ ArrayList 변환

코틀린 개발하다보면 Array, List, ArrayList 간에 변환을 해야하는 경우가 꽤 많은데요

"음.. 어떻게 했더라... "

자주 찾아보게 되더라구요.

그래서 각각의 변환하는 방법을 한곳에 모아보려고 합니다.

반복문 사용은 제외하고 가장 간략하게 변환하는 방법으로 정리하였습니다.



 

 

 

 

1. Array ↔ List 변환

Array → List 변환

val array = arrayOf("a", "b", "c")
val list = array.toList() // toList vs asList


List → Array 변환

val list = listOf("a", "b", "c")
val array = list.toTypedArray()
 

 

 

여기서 잠깐 주의할 점!! (toList vs asList)

toList, asList 모두 동일한 배열 요소를 가지는 List 를 반환하지만 

asList는 Array의 인스턴스 그대로 가지는 List이고 

toList는 새로운 인스턴스를 가지는 List라는 차이를 가집니다.

이는 아래와 같이 asList의 경우 기존 배열 값이 변경되었을 때 List 값도 함께 변하는걸 확인할 수 있습니다.

val array = arrayOf("a", "b", "c")
val asList = array.asList() // array와 배열 요소를 공유하는 List 반환
val toList = array.toList() // array의 배열 요소를 가지는 새로운 List 반환

array[0] = "k"

println(asList) // 출력 결과: [k, b, c]
println(toList) // 출력 결과: [a, b, c]

(음... 특별한 이유가 아니라면 toList 사용이 좋아 보입니다ㅎㅎ)

 

 

 

 

 

 

2. Array ↔ ArrayList 변환

Array → ArrayList 변환

val array = arrayOf("a", "b", "c")
val arrayList = array.toCollection(ArrayList())

 

ArrayList Array 변환 

// ArrayList → Array 변환
val arrayList = arrayListOf("a", "b", "c")
val array = arrayList.toTypedArray()

 

 

 

 

 

 

3. List ↔ ArrayList 변환

List → ArrayList 변환

val list = listOf("a", "b", "c")
val arrayList = ArrayList(list)
 
ArrayList List 변환
val arrayList = arrayListOf("a", "b", "c")
val list = arrayList.toList()

 

 

 

 

0 comments: