Kotlin List, MutableList 추가, 삭제, 프로퍼티
Notepad96
·2020. 11. 22. 04:47
1. List, MutableList
List와 MutableList 불변 하는가 그렇지 않는가에 차이이다.
mutable = 변할 수 있는, 잘 변하는
List를 상속받는 MutableList
public interface MutableList<E> : List<E>, MutableCollection<E> {
...
}
마치 변수를 선언할 때 var과 val을 사용하는 것과 같다고 생각하면 된다.
따라서 리스트가 변화가 없을 것이라고 예상된다면 List를 사용하고,
리스트의 원소를 추가하거나 삭제하거나 변화가 있다면 MutableList를 사용하면 된다.
+) 정렬
2. 코 드
환경 : Kotlin Version = 1.4.10, JVM
fun main(args : Array<String>) {
//val ml = MutableList(5, {0}) // size = 5, 0으로 초기화
val ml = mutableListOf(1, 2, 3, 3, 4)
println("\n===============MutableList====================")
println(ml)
println("\n=================삽 입================")
ml.add(5) // 맨 뒤에 5 삽입
ml += 6 // plusAssign
ml.add(0, 7) // index = 0에 7 삽입
ml.addAll(Array(3, {8} )) // size = 3만큼 8 삽입
for(i in ml.indices) { // index를 사용하여서 루프
print("${ml[i]} ")
}
println()
println("\n================삭 제=================")
if(ml.remove(1)) println("1 삭제 성공!") else println("1 삭제 실패!")
ml.removeAt(0) // index = 0 요소 삭제
ml.removeAll(arrayOf(2, 3))
println(ml)
println("\n================프로퍼티=================")
println("길이 : ${ml.size}")
println("인덱스 Range : ${ml.indices}")
println("마지막 index : ${ml.lastIndex}")
println("\n================복사 및 컨버트=================")
val ml2 = ml.toMutableList() // 복사
if(ml2 !== ml) println("동일하지 않습니다.")
val ml3 = ml.subList(0, 2) // 리스트 자르기, index [0 ~ 2)
println(ml3)
ml.clear()
if(ml.isEmpty()) println("리스트가 비었습니다.")
}
- 삽입은 add 함수를 사용하여서 할 수 있으며 '+=' 연산자를 사용하여서도 할 수 있다.
add 함수의 index를 지정하여서 삽입할 수도 있다.
allAll 함수를 사용하여서 다른 배열이나 리스트를 추가할 수 있다.
- 삭제 또한 add와 비슷하게 remove 로 지정한 원소를 하나 삭제하거나
removeAt 함수로 지정한 index의 원소를 삭제하거나
removeAll 함수를 사용하여 지정한 모든 수를 제거 할 수 있다.
removeAll은 모두 제거하는 것이기 때문에 만약 위에서 인수의 8이 포함되어 있었다면 3개의 8이 모두 제거된다.
따라서 removeAll에 인수로 중복된 값을 줄 필요가 없다.
- 프로퍼티로는
size : 길이
indices : Index IntRange(인덱스 범위)
lastIndex : 마지막 Index
들이 존재한다.
따라서 indices를 사용하여서 index를 사용한 for 루프를 사용할 수 있다.
- 리스트를 복사하기 위하여 toMutableList를 사용할 수 있다.
그냥 val ml2 = ml 처럼 초기화를 해준다면 참조 타입으로서 같은 것을 참조하고 있기 때문에 ml2의 원소를 변경하면 ml도 변경되어 버린다.
- subList를 사용하여 부분 리스트를 가져올 수 있으며 인수로
[start, end) => start 이상 end 미만
의 index의 해당하는 리스트를 반환해준다.
3. 참 조
'Kotlin > Collections' 카테고리의 다른 글
Kotlin Set, MutableSet 추가, 삭제, 프로퍼티 (0) | 2020.11.22 |
---|---|
Kotlin list for문 - index loop (0) | 2020.11.22 |
Kotlin ArrayList<Int> vs. IntArray - 리스트, 배열 (0) | 2020.11.21 |
Kotlin sort 정렬 오름차순, 내림차순, 임의 순 (0) | 2020.10.11 |
Kotlin JS sort 정렬 오름차순, 내림차순, 임의 순 (0) | 2020.10.09 |