Set, MutableSet 은 어떻게 원소에 빠르게 접근할 수 있을까? Kotlin의 Set은 원소에 접근하는데 걸리는 시간이 평균적으로 O(1)이고 중복을 체크하는데 걸리는 시간도 O(1)이다. 이 때문에 많은 Set을 사용하면 매우 효율적으로 원소에 접근할 수 있다. 이번 글에서는 그 이유를 알아보고자 한다. Kotlin의 Set, MutableSet에서 사용하는 자료 구조 Kotlin의 Set, MutableSet은 모두 인스턴스를 만들기 위해 LinkedHashSet을 사용한다. Set의 내부 구현 살펴보기 Set의 모든 생성자를 보는데는 너무 시간이 많이 걸리므로 Set을 만드는 대표적인 함수인 setOf 함수만 보도록 하자. Kotlin에서 setOf를 사용해 Set 생성하는 부분을 보면 ..
Kotlin Set
목표 Set API에 대한 이해를 높인다. HashSet, LinkedHashSet을 생성하는 방법과 다루는 방법을 익힌다. 개요 Set은 중복을 허용하지 않는 자료구조로, 중복된 값이 들어오면 값이 입력이 되지 않는다. Java에서 제공하는 HashSet의 종류는 두 가지이다. 하나는 HashSet이고, 다른 하나는 LinkedHashSet이다. 둘의 차이점은 HashSet은 요소의 순서를 저장하지 않고, LinkedHashSet은 요소의 순서를 저장한다는 점이다. Kotlin은 자바의 HashSet과 LinkedHashSet을 그대로 가져오는 형태로 만들어졌으며, Mutable Interface와 Immutable Interface를 제공하여 이 Set들을 조작할 수 있는지를 코드 단에서 결정한다. ..