관리 메뉴

피터의 개발이야기

[Kotlin] MutableList 기능 설명 본문

Programming/Kotlin

[Kotlin] MutableList 기능 설명

기록하는 백앤드개발자 2024. 7. 10. 10:10
반응형

ㅁ 들어가며

ㅇ MutableList는 Kotlin에서 동적으로 요소를 추가, 삭제, 수정할 수 있는 리스트 타입이다. 

ㅇ 읽기 전용인 List와 달리 MutableList는 변경 가능한 리스트를 다룰 때 사용된다. 

ㅇ 이 글에서는 MutableList의 주요 기능과 사용법을 알아본다.

 

ㅁ MutableList 생성

val list1 = mutableListOf(1, 2, 3)
val list2 = mutableListOf<String>()
val list3 = MutableList(5) { it * 2 } // [0,2,4,6,8]
val list4 = (1..50).toMutableList()
val list5 = MutableList<Int>(5, { i -> i}) // [0,1,2,3,4]

ㅇ MutableList 생성하기 위해서는 위의 방법이 있다.

 

ㅁ MutableList 추가

val list = mutableListOf(1, 2, 3)
list.add(4) // [1, 2, 3, 4]
list.add(0, 0) // [0, 1, 2, 3, 4]
list.addAll(listOf(5, 6)) // [0, 1, 2, 3, 4, 5, 6]

ㅇ add(): 리스트 끝에 요소 추가
ㅇ add(index, element): 특정 위치에 요소 추가
ㅇ addAll(): 다른 컬렉션의 모든 요소 추가

 

ㅁ MutableList 제거

val list = mutableListOf(1, 2, 3, 4, 5)
list.remove(3) // [1, 2, 4, 5]
list.removeAt(0) // [2, 4, 5]
list.clear() // []

ㅇ remove(): 특정 요소 제거
ㅇ removeAt(): 특정 인덱스의 요소 제거
 clear(): 모든 요소 제거

 

ㅁ MutableList 수정

val list = mutableListOf(1, 2, 3)
list[1] = 20 // [1, 20, 3]

ㅇ 인덱스를 사용하여 요소를 직접 수정할 수 있다.

 

ㅁ MutableList루프

val list = mutableListOf(1, 2, 3)
for (item in list) {
    println(item)
}

list.forEach { println(it) }

ㅇ for, forEach를 사용하여 리스트를 순회할 수 있다

 

ㅁ 유용한 함수들

val list = mutableListOf(1, 2, 3, 4, 5)

list.retainAll(listOf(1, 2, 3)) // [1, 2, 3]
list.removeAll(listOf(1, 2)) // [3, 4, 5]
val subList = list.subList(0, 2) // [1, 2]

ㅇ retainAll(): 주어진 컬렉션에 포함된 요소만 남기고 나머지 제거
 removeAll(): 주어진 컬렉션에 포함된 모든 요소 제거
 subList(): 리스트의 일부분을 반환

 

ㅁ val vs var

val list1 = mutableListOf(1, 2, 3)
list1.add(4) // 가능
// list1 = mutableListOf(5, 6) // 컴파일 에러

var list2 = mutableListOf(1, 2, 3)
list2.add(4) // 가능
list2 = mutableListOf(5, 6) // 가능

ㅇ MutableList를 선언할 때 val로 선언해도 리스트의 내용을 변경할 수 있다. 

ㅇ 하지만 var로 선언하면 리스트 자체를 다른 리스트로 재할당할 수 있다.

 

ㅁ 마무리

MutableList는 동적으로 변경 가능한 리스트가 필요할 때 유용하게 사용할 수 있다. 하지만 불필요한 변경을 방지하고 코드의 안정성을 높이기 위해, 가능한 경우 불변의 List를 사용하는 것이 좋다.

 

글 작성하며 테스트 했던 소스

 

ㅁ 함께 보면 좋은 사이트

Kotlin doc - MutableList

[Kotlin] MutableList 기능 설명

반응형
Comments