Java Collection에는 Set이라는 자료구조가 있다. 집합처럼 중복되지 않는 원소 모음을 만들 수 있다.
데이터 저장에 HashTable(HashMap
)을 이용하는 Set
- Map의 특성 중 하나인 중복 key는 존재할 수 없다는 특징을 이용함.
- index가 아닌 key를 이용하여 데이터 저장/접근이 필요할 때 유용하다.
- 데이터 크기가 예상되는 경우 사용
- 삽입 삭제가 빈번할 경우 사용
import java.util.HashSet;
HashSet<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.add("a"); // 중복하는 원소이므로 add되지 않음
set.contains("a"); // 포함 체크
set.remove("a"); // 삭제
논리적인 Tree 구조(TreeMap
)로 데이터를 저장하는 Set
- Map의 특성 중 하나인 중복 key는 존재할 수 없다는 특징을 이용함.
- 원소 개수가 예측이 불가능할 때 유용
- 삽입/삭제가 빈번하지 않을 때 사용
- 정렬 값이 필요한 경우 사용
import java.util.TreeSet;
TreeSet<String> set = new TreeSet<>();
// 삽입, 삭제, 포함 메소드는 HashSet과 동일
HashSet
을 상속하여 만들어진 Set.
LinkedHashMap
을 활용함.
- 값의 저장 순서가 중요할 때 사용
import java.util.LinkedHashSet;
LinkedHashSet<String> set = new LinkedHashSet<>();