들어가기 전에
Set은 정해진 순서가 없는 요소들의 집합을 나타내는 컬렉션입니다. List의 경우 값이 중복되더라도 요소로 저장할 수 있었지만 Set의 경우에는 집합의 개념이기 때문에 동일한 요소를 중복해서 가질 수 없습니다.
핵심 키워드
- 집합(Set)
- 유일(unique)
학습하기
들어가기 전에
Set은 정해진 순서가 없는 요소들의 집합을 나타내는 컬렉션입니다. List의 경우 값이 중복되더라도 요소로 저장할 수 있었지만 Set의 경우에는 집합의 개념이기 때문에 동일한 요소를 중복해서 가질 수 없습니다.
핵심 키워드
학습하기
집합의 개념으로 사용하는 Set은 List와 마찬가지로 헬퍼 함수인 setOf()을 이용해 불변형 Set을 생성하고, mutableSetOf()를 이용해 가변형 Set을 생성할 수 있습니다.
불변형 setOf()함수
setOf()는 읽기전용인 불변형 Set<T> 자료형을 반환합니다.
fun main() {
val mixedTypesSet = setOf("Hello", 5, "world", 3.14, 'c') // 자료형 혼합 초기화
var intSet: Set<Int> = setOf<Int>(1, 5, 5) // 정수형만 초기화
println(mixedTypesSet)
println(intSet)
}
자료형을 혼합하거나 특정 자료형을 지정해 사용할 수 있습니다. 중복 요소를 허용하지 않으므로 intSet에서는 중복된 요소인 5가 결과에서 하나만 나타납니다.
가변형 mutableSetOf()함수
mutableSetOf()함수로 추가 및 삭제가 가능한 집합을 만들 수 있습니다. mutableSetOf()는 MutableSet 인터페이스 자료형을 반환하는데, 내부적으로 자바의 LinkedHashSet을 만들어 냅니다.
Set의 여러 가지 자료구조
hashSetOf()함수
hashSetOf()헬퍼 함수를 통해 해시 테이블에 요소를 저장할 수 있는 자바의 HashSet컬렉션을 만듭니다.
sortedSetOf()함수
sortedSetOf()함수는 자바의 TreeSet 컬렉션을 정렬된 상태로 반환합니다. 사용하려면 java.util.* 패키지를 임포트해야 합니다. TreeSet은 저장된 데이터의 값에 따라 정렬되는데 일종의 개선된 이진 탐색 트리사용해 자료구조를 구성합니다.
linkedSetOf()함수
linkedSetOf()함수는 자바의 LinkedHashSet 자료형을 반환하는 헬퍼 함수입니다. 이름에서 알 수 있듯이 자료구조 중 하나인 링크드 리스트(Linked-list)를 사용해 구현된 해시 테이블에 요소를 저장합니다.
http://www.yes24.com
comment