Kotlin List, MutableList 추가, 삭제, 프로퍼티

Notepad96

·

2020. 11. 22. 04:47

300x250

 

 

 

 

 

 


1. List, MutableList

 

ListMutableList 불변 하는가 그렇지  않는가에 차이이다.

 

mutable = 변할 수 있는, 잘 변하는

 

 

 

List를 상속받는 MutableList

public interface MutableList<E> : List<E>, MutableCollection<E> {
...
}

 

 

 

마치 변수를 선언할 때 var과 val을 사용하는 것과 같다고 생각하면 된다.

 

 

따라서 리스트가 변화가 없을 것이라고 예상된다면 List를 사용하고,

 

 

리스트의 원소를 추가하거나 삭제하거나 변화가 있다면 MutableList를 사용하면 된다.

 

 

 

 

+) 정렬

 

Kotlin sort 정렬 오름차순, 내림차순, 임의 순

1. Sort(정렬) kotlin은 다양한 sort 함수를 제공하여 상황에 맞은 sort 함수를 사용해야 한다. 우선 간단하게 분류를 해보면 우선 sort와 sortDescending 이 있다. sort인 것은 오름차순 sortDescending ..

notepad96.tistory.com

 

 

 

 

 


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. 참 조

 

 

MutableList - Kotlin Programming Language

 

kotlinlang.org

 

300x250