[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
라는 리스트에 중복된 요소가 있는지 확인합니다. 일단 중복을 제거한 후의 리스트의 크기와 원본 리스트의 크기를 비교하여 중복된 요소의 존재 여부를 확인합니다.
또 다른 방법으로는 groupingBy
와 eachCount
함수를 사용하여 각 요소의 개수를 세는 방법이 있습니다.
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보다 큰 요소가 있는지 확인하여 중복된 요소의 존재 여부를 판단합니다.
참고 문헌:
- Kotlin 공식 문서: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/each-count.html