[kotlin] 코틀린 집합(Set)과 맵(Map)의 관계

코틀린에서 집합(Set)과 맵(Map)은 모두 컬렉션(Collection)의 한 종류이며, 공통적으로 요소들을 보관한다는 점에서 유사합니다. 하지만 두 컬렉션은 서로 다른 특징을 가지고 있습니다. 이 글에서는 코틀린 집합과 맵의 특징과 차이점에 대해 알아보겠습니다.

집합(Set)

코틀린 집합(Set)은 중복을 허용하지 않는 컬렉션입니다. 따라서, 동일한 원소가 여러 번 추가되더라도 한 번만 보관됩니다. 집합은 순서가 없는 구조이기 때문에 원소 추가된 순서를 보장하지 않습니다.

val set = setOf(1, 2, 3, 4, 5, 3, 2)
println(set) // 출력: [1, 2, 3, 4, 5]

위 코드에서는 setOf 함수를 사용하여 여러 숫자를 포함하는 set 집합을 생성했습니다. 이 집합은 중복된 숫자를 포함하지 않고, 순서도 유지되지 않습니다.

맵(Map)

코틀린 맵(Map)은 키-값 쌍(key-value pair)을 보관하는 컬렉션입니다. 각 키는 고유해야 하며, 키를 통해 해당 값을 가져올 수 있습니다. 맵은 순서가 없는 구조이며, 중복되는 값은 허용됩니다.

val map = mapOf("a" to 1, "b" to 2, "c" to 3, "a" to 4)
println(map) // 출력: {a=4, b=2, c=3}

위 코드에서는 mapOf 함수를 사용하여 문자열 키와 숫자 값을 가지는 map 맵을 생성했습니다. 같은 키 "a"가 두 번 사용되었지만, 맵은 각 키에 연결된 값만을 유지하고 있음을 확인할 수 있습니다.

집합과 맵의 관계

맵은 사실상 특별한 형태의 집합으로 볼 수 있습니다. 맵에서는 키가 집합의 원소에 해당하고, 값이 실제 원소의 내용에 해당합니다. 따라서 맵은 집합의 확장으로 볼 수 있습니다.

주어진 키에 대해 하나의 값만을 가지는 맵은 곧 집합으로 간주할 수 있습니다. 따라서 코틀린에서 맵과 집합은 서로 관련이 깊은 컬렉션 형태로 볼 수 있습니다.

따라서, 코틀린에서는 집합과 맵을 다룰 때 이러한 관계를 이해하고 활용함으로써 효율적인 코드를 작성할 수 있습니다.

이상으로 코틀린 집합과 맵의 관계에 대해 알아보았습니다. 감사합니다.

코틀린 문서 - Set 코틀린 문서 - Map