티스토리 뷰

반응형

셋은 객체 컬렉션으로, 각 객체는 한 번만 포함될 수 있습니다. 즉, 각 요소 유형의 객체는 집합에 포함되어 있거나 포함되지 않은 것으로 간주됩니다.

 

Set 구현체는 일부 요소들을 구분할 수 없다고 간주할 수 있습니다. 이러한 요소들은 집합에서의 모든 작업에서 동일한 것으로 취급됩니다.

기본 Set 구현체인 LinkedHashSet은 `Object.==` 및 `Object.hashCode`에 따라 객체가 동일하다고 간주합니다.

 

집합의 요소를 반복(iterate)하는 순서는 무작위이거나 특정 방식으로 정렬될 수 있습니다. 예시:

- HashSet은 무작위로 정렬되며, 반복 순서가 지정되지 않습니다.
- LinkedHashSet은 요소의 삽입 순서대로 반복합니다.
- SplayTreeSet과 같은 정렬된 집합은 요소를 정렬된 순서로 반복합니다.

 

일반적으로 집합에 대해 작업하는 동안(예: `forEach`나 `containsAll` 호출 중) 집합을 수정(요소 추가 또는 제거)하는 것은 허용되지 않습니다. 또한, 집합 자체나 `where` 및 `map` 메소드가 반환하는 Iterable과 같은 집합을 기반으로 하는 Iterable을 반복하는 동안에도 수정하는 것은 허용되지 않습니다.

 

집합에 있는 동안 요소의 동등성을 수정하는 것(따라서 해시코드도 수정하는 것)은 일반적으로 허용되지 않습니다. 일부 특수한 하위 유형은 더 관대할 수 있으며, 이 경우 해당 동작을 문서화해야 합니다.

 

생성자 (Constructors)

  • Set(): 빈 Set을 생성합니다.
  • Set.from(Iterable elements): 모든 요소를 포함하는 Set을 생성합니다.
  • Set.identity(): 빈 identity Set을 생성합니다.
  • Set.of(Iterable elements): 요소들로부터 Set을 생성합니다.
  • Set.unmodifiable(Iterable elements): 요소들로부터 수정할 수 없는 Set을 생성합니다.

 

속성 (Properties)

  • first → E: 첫 번째 요소입니다.
  • hashCode → int: 이 객체의 해시 코드입니다.
  • isEmpty → bool: 이 컬렉션에 요소가 없는지 여부를 나타냅니다.
  • isNotEmpty → bool: 이 컬렉션에 적어도 하나의 요소가 있는지 여부를 나타냅니다.
  • iterator → Iterator: 이 Set의 요소를 반복하는 Iterator입니다.
  • last → E: 마지막 요소입니다.
  • length → int: 이 Iterable에 있는 요소의 수입니다.
  • runtimeType → Type: 객체의 런타임 유형을 나타냅니다.
  • single → E: 이 Iterable에 단 하나의 요소만 있는지 확인하고, 그 요소를 반환합니다.

 

메서드 (Methods)

요소 추가 및 제거

  • add(E value) → bool: Set에 값을 추가합니다.
  • addAll(Iterable elements) → void: Set에 모든 요소를 추가합니다.
  • remove(Object? value) → bool: Set에서 value를 제거합니다.
  • removeAll(Iterable<Object?> elements) → void: Set에서 elements의 각 요소를 제거합니다.
  • removeWhere(bool test(E element)) → void: test를 만족하는 Set의 모든 요소를 제거합니다.
  • retainAll(Iterable<Object?> elements) → void: elements에 없는 Set의 모든 요소를 제거합니다.
  • retainWhere(bool test(E element)) → void: test를 만족하지 않는 Set의 모든 요소를 제거합니다.
  • clear() → void: Set의 모든 요소를 제거합니다.

요소 확인

  • contains(Object? value) → bool: Set에 value가 포함되어 있는지 여부를 확인합니다.
  • containsAll(Iterable<Object?> other) → bool: 이 Set이 다른 모든 요소를 포함하는지 여부를 확인합니다.
  • any(bool test(E element)) → bool: 이 Iterable의 요소 중 하나라도 test를 만족하는지 확인합니다.
  • every(bool test(E element)) → bool: 이 Iterable의 모든 요소가 test를 만족하는지 확인합니다.
  • lookup(Object? object) → E?: Set에 object와 같은 객체가 있으면 반환합니다.

요소 검색 (Element Search)

  • elementAt(int index) → E: index번째 요소를 반환합니다.
  • firstWhere(bool test(E element), {E orElse()?}) → E: 주어진 test를 만족하는 첫 번째 요소를 반환합니다.
  • lastWhere(bool test(E element), {E orElse()?}) → E: 주어진 test를 만족하는 마지막 요소를 반환합니다.
  • singleWhere(bool test(E element), {E orElse()?}) → E: test를 만족하는 단일 요소를 반환합니다.

집합 연산 (Set Operations)

  • difference(Set<Object?> other) → Set: 이 Set에 있지만 다른 Set에 없는 요소들로 새 Set을 생성합니다.
  • intersection(Set<Object?> other) → Set: 이 Set과 다른 Set의 교집합을 포함하는 새 Set을 생성합니다.
  • union(Set other) → Set: 이 Set과 다른 Set의 모든 요소를 포함하는 새 Set을 만듭니다.

변환 및 확장 (Transformation and Expansion)

  • cast() → Set: 이 Set을 R 인스턴스의 Set으로 변환합니다.
  • expand(Iterable toElements(E element)) → Iterable: 이 Iterable의 각 요소를 0개 이상의 요소로 확장합니다.
  • map(T toElement(E e)) → Iterable: 이 Iterable의 현재 요소를 toElement로 변환한 새 Iterable을 만듭니다.

순회 및 반복 (Iteration and Traversal)

  • forEach(void action(E element)) → void: 이 Iterable의 각 요소에 대해 action을 호출합니다.
  • followedBy(Iterable other) → Iterable: 이 Iterable과 다른 Iterable을 이어붙인 새로운 Iterable을 만듭니다.
  • where(bool test(E element)) → Iterable: test를 만족하는 요소들로 구성된 새로운 Iterable을 만듭니다.
  • whereType() → Iterable: 타입 T의 요소들로 구성된 새로운 Iterable을 만듭니다.

슬라이싱 및 분할 (Slicing and Partitioning)

  • skip(int count) → Iterable: 첫 count 요소를 제외한 Iterable을 생성합니다.
  • skipWhile(bool test(E value)) → Iterable: test를 만족하는 동안 요소를 건너뛰는 Iterable을 생성합니다.
  • take(int count) → Iterable: 처음 count개의 요소로 구성된 Iterable을 만듭니다.
  • takeWhile(bool test(E value)) → Iterable: test를 만족하는 동안의 요소들로 구성된 Iterable을 만듭니다.

집계 및 축소 (Aggregation and Reduction)

  • fold(T initialValue, T combine(T previousValue, E element)) → T: 이 Iterable의 각 요소를 결합하여 단일 값으로 줄입니다.
  • reduce(E combine(E value, E element)) → E: 이 Iterable의 요소를 결합하여 단일 값으로 줄입니다.

기타 (Miscellaneous)

  • toList({bool growable = true}) → List: 이 Iterable의 요소로 구성된 List를 만듭니다.
  • toSet() → Set: 이 Set과 동일한 요소와 동작을 갖는 새 Set을 만듭니다.
  • toString() → String: 이 객체의 문자열 표현을 반환합니다.
  • join([String separator = ""]) → String: 각 요소를 문자열로 변환하고, 그 문자열들을 연결합니다.

 

연산자 (Operators)

  • operator ==(Object other) → bool: 두 Set이 동일한지 비교합니다.

 

정적 메서드 (Static Methods)

  • castFrom<S, T>(Set source, {Set newSet()?}) → Set: source Set을 T 유형의 Set으로 변환합니다.
반응형
댓글
공지사항