코틀린 개발하다보면 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: