iOS 스터디 Part2 Set

기본적으로 각 요소가 한 번씩만 나타나며 정렬되지 않는 컬렉션 유형입니다.

Advanced Swift (by Chris Eidhof) 책을 번역 후 참고하여 작성하였습니다.

특징.

  • Hash Table로 구현되어 있기 때문에(순서가 없는 Hashable한 값들의 유일한 집합) 값을 검색하는 것은 기본적으로 상수 시간 O(1)입니다.

  • iterator이기 때문에 loop, filter, map 연산 가능

    단, 순서보장이 안되므로

    1. 정렬이 필요할 경우: sorted() 함수 사용

    let sortedSet = originSet.sorted()

    2. 원본 순서가 필요할 경우: 클로저 사용하여 Sequence extension 선언

    extension Sequence where Element: Hashable { 
    	func unique() -> [Element] {
    		let seen: Set<Element> = [] 
    		return !lter { element in
    			if seen.contains(element) { 
    				return false
    			} else{ 
    				seen.insert(element) return true
    			}
    		}
    	} 
    }

Protocols.

  • ExpressibleByArrayLiteral: 배열 초기화

  • SetAlgebra: 집합 연산

Next Steps.

Set, Dictionary는 기본적으로 Hash Table를 사용하기 때문에 해당 개념을 정리하고 다른 Collection 유형과 비교해볼 예정이다.

Last updated