본문 바로가기
스터디/Kotlin

[Kotlin] List와 MutableList 개념 및 차이점

by zoodi 2025. 1. 18.
728x90
val countryList = listOf<String>("한국","미국","일본")
val minusCountryList = countryList - "일본" // "한국", "일본" 값의 List
val plusCountryList = countryList + "중국" // "한국","미국","일본","중국" 값의 List
 
val newlistData = listOf(1, 2, 3)
val plusList = listOf(4, 5, 6)
newlistData.addAll(plusList) // List 합치기
val newlistData2 = plusList1 + plusList2 // + 기호로 합치기
val newListData3 = plusList1.plus(plusList2) // plus함수로 합치기
val newListData4 = plusList1.union(plusList2) // 중복제거 한 후 합치기

목차

     

     

     

    1. List와 MutableList 차이

    List와 MutableList 모두 List 이지만 List는 불변이고 MutableList 는 가변입니다.

    즉 List는 read 만 가능하고 MutableList read, insert, delete 가 가능하다는 점이 가장 큰 차이점입니다.

     

     

    <예시코드>

    var list1 = listOf("a" , "b", "c")
    list1.add("d") //error
    list1.removeAt(0) //error
     
     
    var list2 = mutableListOf("a" , "b" , "c")
    list2.add("d")  //["a" , "b", "c", "d"]
    list2.removeAt(0)   // ["b" , "c", "d"]
    • Kotlin에서는 List 인 listOf 사용을 권장합니다. (안정성 때문)
    • 동적으로 할당되는 배열을 활용할 경우 MutableList를 사용합니다.

     

    2. 추가 정보 (FYI)

    • 참고로 val 변수에 객체를 할당했을 경우 객체를 재할당하는 것은 불가능하지만 할당된 객체의 내용을 변경하는 것에는 문제가 없습니다.
    val mutableList = mutableListOf<Int>(1,2,3)
     
    mutableList.add(4)  //가능

     

    • +, - 를 사용하여 추가 및 삭제된 새로운 collection 을 생성할 수 있습니다.

     

     

    3. 참고자료

    https://velog.io/@allsilver/Kotlin-List%EC%99%80-MutableList%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

    https://blog.miyam.net/170

    https://hwan-shell.tistory.com/247

    728x90

    댓글