Set이란?

구교석·2024년 5월 23일
post-thumbnail

Set이란?

Set은 중복되지 않는 값들을 저장하는 인터페이스입니다. Set의 요소의 순서는 특정한 정렬 기준을 따르지 않습니다. Set을 구현하는 대표적인 클래스들은 HashSet, TreeSet, LinkedHashSet 등이 있습니다.

Set 특징

  • 추가한 데이터가 순서대로 저장되지 않음
  • 수정 가능
  • 데이터 중복이 없다. 동일한 값이 추가되면 저장되지않음
  • FastLookup이 필요할 때 주로 쓰임

Set 기능

  1. 삽입: Set.add(값);
  2. 제거: Set.remove(값);
  3. 크기: Set.size(); : Set에 크기를 반환한다.
    Set에 요소가 있는지 없는지 판단: Set.isEmpty();
    (없으면 True, 있으면 False를 반환)
  4. 지정한 값이 Set 안에 있는지 판단: Set.contains(값);
    (있으면 True, 없으면 False를 반환)

HashSet

HashSet<String> hash = new HashSet<>();

HashSet은 가장 일반적으로 사용되는 Set 구현 중 하나입니다. 해시 테이블을 사용하여 요소의 빠른 액세스, 삽입 및 삭제를 제공합니다. HashSet은 해당 요소에 대한 특정 순서를 유지하지 않습니다. 해싱을 사용하기 때문에 요소의 순서를 예측할 수 없습니다.

TreeSet

Set<String> treeset = new TreeSet<>();

TreeSet은 정렬된 순서로 요소를 유지 관리하는 Set 구현입니다. 자체 균형 이진 검색 트리(일반적으로 레드-블랙 트리)로 구현됩니다. 결과적으로 요소는 항상 오름차순으로 저장됩니다. TreeSet은 null 값을 허용하지 않으며 모든 요소는 비교 가능하거나 Comparable 인터페이스를 구현해야 합니다.

LinkedHashSet

LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();

LinkedHashSet은 해시 테이블 외에 이중으로 연결된 요소 목록을 유지 관리하는 HashSet의 확장입니다. LinkedHashSet은 요소가 삽입된 순서대로 반복되도록 하여 예측 가능한 반복 순서를 제공합니다. LinkedHashSet은 null 값을 허용하고 하나의 null 요소만 허용합니다.

참고 사이트


[java] Set 종류와 정리
[Java] Set 이란? Java Set 사용법

profile
끊임없이 노력하는 개발자

0개의 댓글