Search

HashSet

부모클래스
Set
기능
순서X
중복X
다중 선택
선택
Java의 HashSet 클래스는 Set 인터페이스를 구현한 대표적인 클래스 중 하나로, 중복된 값을 저장하지 않는 특징을 가지고 있습니다. 내부적으로는 HashMap을 이용하여 데이터를 저장하며, 데이터의 순서를 보장하지 않습니다.
주요 특징:
1.
중복 허용하지 않음: HashSet은 같은 값을 중복해서 저장하지 않습니다. 동일성은 equals() 메서드와 hashCode() 메서드에 의해 결정됩니다.
2.
순서를 유지하지 않음: HashSet은 입력 순서나 요소의 크기에 따라 요소를 정렬하지 않습니다. 요소의 순서는 HashSet이 내부적으로 관리하는 HashMap의 상태에 따라 달라집니다.
3.
Null 값 허용: HashSet은 Null 값을 저장하는 것을 허용합니다. 하지만 Null 값은 단 한 번만 저장될 수 있습니다.
4.
스레드 안전하지 않음: HashSet은 여러 스레드에서 동시에 사용되는 경우, 데이터의 일관성을 보장하지 않습니다. 멀티 스레드 환경에서는 Collections.synchronizedSet() 메서드를 이용하여 동기화된 Set을 만드는 것이 좋습니다.
주요 메서드:
add(E e): 지정된 요소를 세트에 추가합니다.
remove(Object o): 지정된 요소를 세트에서 제거합니다.
contains(Object o): 지정된 요소가 세트에 포함되어 있는지 확인합니다.
size(): 세트의 크기(요소의 개수)를 반환합니다.
isEmpty(): 세트가 비어있는지 확인합니다.
clear(): 세트의 모든 요소를 제거합니다.
이 외에도 다양한 메서드가 제공되며, 상황에 따라 적절한 메서드를 사용하면 됩니다.

Set의 요소들을 탐색하는 방법

Set<String> set = new HashSet<>(); set.add("A"); set.add("B"); set.add("C"); Iterator<String> iterator = set.iterator(); while(iterator.hasNext()){ String element = iterator.next(); System.out.println(element); }
JavaScript
복사
Set<String> set = new HashSet<>(); set.add("A"); set.add("B"); set.add("C"); for(String element : set){ System.out.println(element); }
JavaScript
복사