
HashSet은 자바에서 중복을 허용하지 않는 객체들의 집합을 저장하는 데 사용하는 자료구조입니다. 순서를 보장하지 않으며, 삽입, 삭제, 검색 연산이 매우 빠르다는 특징을 가지고 있습니다.
import java.util.HashSet;
import java.util.Set;
public class HashSetExample {
public static void main(String[] args) {
// HashSet 생성
Set<String> mySet = new HashSet<>();
// 1. 데이터 추가 (add)
mySet.add("사과");
mySet.add("바나나");
mySet.add("딸기");
mySet.add("사과"); // "사과"는 이미 존재하므로 추가되지 않음
System.out.println("Set에 저장된 데이터: " + mySet);
// 2. 현재 원소의 개수 확인 (size)
System.out.println("현재 Set에 있는 원소의 개수: " + mySet.size()); // 3 출력
// 3. 데이터 삭제 (remove)
mySet.remove("딸기");
System.out.println("딸기 삭제 후 Set에 저장된 데이터: " + mySet);
// 4. 다시 원소의 개수 확인 (size)
System.out.println("딸기 삭제 후 Set에 있는 원소의 개수: " + mySet.size()); // 2 출력
}
}
예제 분석
1. 데이터 추가 (add): mySet.add("사과");를 호출하면 "사과"라는 문자열을 HashSet에 추가합니다. mySet.add("사과");를 한 번 더 호출해도, HashSet은 중복을 허용하지 않으므로 추가되지 않습니다.
2. 데이터 존재 여부 확인 (contains): mySet.contains("바나나")는 HashSet 내부에 "바나나"라는 데이터가 있는지 빠르게 확인합니다. 이 연산은 해시 테이블의 특성 덕분에 매우 빠릅니다.
3. 데이터 삭제 (remove): mySet.remove("딸기")를 호출하면 "딸기"라는 데이터를 HashSet에서 제거합니다. 이 연산 역시 빠르게 수행됩니다.