리스트가 갖고 있는 요소들 중에 중복 값을 찾아서 제거하는 방법에 대해서 알아보겠습니다.

리스트는 Set과 다르게 중복 값이 저장될 수 있습니다.

1. distinct()를 이용한 방법

List.distinct()는 리스트에서 중복된 값을 제거하여, 유일한 값만 남도록 합니다.

아래와 같이 중복 값을 제거할 수 있습니다.

fun main() {
    val list = listOf(1, 2, 2, 3, 4, 4, 5)
    val newList = list.distinct()
    println(newList)
}

Output:

[1, 2, 3, 4, 5]

2. Set를 이용한 방법

Set는 중복 값을 허용하지 않는 자료구조로, 중복 값을 추가해도 추가가 되지 않습니다.

이것을 이용하여 아래와 같이 리스트를 Set로 변경하고 다시 List로 변경하면, 이 과정에서 중복 요소가 삭제됩니다.

fun main() {
    val list = listOf(1, 2, 2, 3, 4, 4, 5)
    val newList = list.toSet().toList()
    println(newList)
}

Output:

[1, 2, 3, 4, 5]

3. for문을 이용한 방법

for문으로 루프를 돌면서, 중복된 값을 제외한 나머지 요소들로 새로운 리스트를 구성하는 방법이 있습니다.

fun main() {
    val list = listOf(1, 2, 2, 3, 4, 4, 5)
    val newList = mutableListOf<Int>()

    for (item in list) {
        if (!newList.contains(item)) {
            newList.add(item)
        }
    }
    println(newList)
}

Output:

[1, 2, 3, 4, 5]