[kotlin] 리스트(List)에 중복된 요소가 있는지 어떻게 확인할 수 있나요?

다음은 Kotlin에서 리스트에 중복된 요소가 있는지 확인하는 예제 코드입니다.

fun main() {
    val listWithDuplicates = listOf(1, 2, 3, 4, 5, 1, 2, 3)
    
    val hasDuplicates = listWithDuplicates.size != listWithDuplicates.distinct().size
    
    if (hasDuplicates) {
        println("리스트에 중복된 요소가 있습니다.")
    } else {
        println("리스트에 중복된 요소가 없습니다.")
    }
}

이 코드는 listWithDuplicates라는 리스트에 중복된 요소가 있는지 확인합니다. 일단 중복을 제거한 후의 리스트의 크기와 원본 리스트의 크기를 비교하여 중복된 요소의 존재 여부를 확인합니다.

또 다른 방법으로는 groupingByeachCount 함수를 사용하여 각 요소의 개수를 세는 방법이 있습니다.

fun main() {
    val listWithDuplicates = listOf(1, 2, 3, 4, 5, 1, 2, 3)
    
    val duplicatesMap = listWithDuplicates.groupingBy { it }.eachCount()
    
    if (duplicatesMap.any { it.value > 1 }) {
        println("리스트에 중복된 요소가 있습니다.")
    } else {
        println("리스트에 중복된 요소가 없습니다.")
    }
}

이 예제 코드에서는 duplicatesMap이라는 맵을 사용하여 각 요소의 개수를 세고, 그 중에서 개수가 1보다 큰 요소가 있는지 확인하여 중복된 요소의 존재 여부를 판단합니다.

참고 문헌: