
1. HashSet 이란?
HashSet은 자바에서 제공하는 컬렉션 프레임워크의 일부로, 집합(Set) 인터페이스를 구현한 클래스이다.
HashSet의 가장 큰 특징은 중복된 요소를 허용하지 않는다 는 점이다. 즉, 같은 값을 여러 번 추가할 수 없으며, 이를 통해 데이터의 유일성을 유지할 수 있다. 이러한 특성 덕분에 HashSet은 데이터의 중복을 체크해야 하는 경우에 매우 유용하다.
2. HashSet의 기능
- 중복 없음 : HashSet은 중복된 요소를 허용하지 않으며, 동일한 요소를 여러 번 추가하려고 하면 무시
- 순서 없음 : 요소의 저장 순서는 보장되지 않으며, 추가된 순서와는 다르게 저장
- null 값 허용 : HashSet은 하나의 null 값을 허용
3. 주요 메서드
- add : 집합에 요소를 추가합니다. 이미 존재하는 경우 false를 반환
- remove : 특정 요소를 제거합니다. 해당 요소가 존재하지 않으면 false를 반환
- contains : 집합에 특정 요소가 포함되어 있는지 확인
- size() : 집합의 요소 수를 반환
- clear() : 집합의 모든 요소를 제거
- iterator() : 집합의 요소를 순회할 수 있는 Iterator를 반환
- retainAll() : 두개의 배열이 있을 경우 교집합을 산출
4. 교집합 구해보기
Q. 3, 4, 5, 6 과 4, 5, 6의 교집합을 출력하라.
package org.example;
import java.util.Arrays;
import java.util.HashSet;
public class Test2 {
public static void main(String[] args) {
HashSet<Integer> hashSet1 = new HashSet<>(Arrays.asList(3, 4, 5, 6));
HashSet<Integer> hashSet2 = new HashSet<>(Arrays.asList(4, 5, 6));
hashSet1.retainAll(hashSet2);
// 결과 출력
System.out.println(hashSet1);
}
}
HashSet의 retainAll() 메서드를 통해, for문 없이 교집합을 찾아낼 수 있다.