HashSet은 Set인터페이스를 구현한 가장 대표적인 컬렉션이며, Set인터페이스의 특징대로 HashSet은 중복된 요소를 저장하지 않는다.
HashSet은 저장순서를 유지하지 않으므로 저장순서를 유지하고자 한다면 LinkedHashSet을 사용해야 한다.

HashSet 예시
import java.util.HashSet;
public class _01_HashSet {
public static void main(String[] args) {
HashSet<Integer> hs = new HashSet<>();
//요소 추가 시 중복 허용x
hs.add(3);
hs.add(4);
hs.add(5);
hs.add(6);
hs.add(3);
hs.add(4);
hs.add(5);
hs.add(6);
hs.remove(5);//인덱스 삭제는 불가능하고, 값(벨류) 삭제는 가능하다.
System.out.println("HashSet : " + hs);
if (hs.contains(5)) {
System.out.println("5는 HashSet에 포함된 값입니다.");
}else {
System.out.println("5는 HashSet에 포함된 값이 아닙니다.");
}
}
}
Iterator는 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스다.
Iterator()를 호출하여 Iterator를 얻은 다음 반복문, 주로 while문을 사용해서 컬렉션 클래스의 요소들을 읽어올 수 있다.
HashSet과 Iterator 예시
import java.util.HashSet;
import java.util.Iterator;
public class HashSetExample {
public static void main(String[] args) {
// HashSet 생성
HashSet<String> set = new HashSet<>();
// 원소 추가
set.add("Apple");
set.add("Banana");
set.add("Orange");
set.add("Apple"); // 중복된 값은 추가되지 않음
// 크기 출력
System.out.println("HashSet의 크기: " + set.size());
// 원소 출력
System.out.println("HashSet의 원소:");
for (String element : set) {
System.out.println(element);
}
// Iterator를 사용한 원소 출력
System.out.println("Iterator를 사용한 HashSet의 원소:");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
// 원소 삭제
set.remove("Banana");
// 삭제 후 원소 출력
System.out.println("Banana 삭제 후 HashSet의 원소:");
for (String element : set) {
System.out.println(element);
}
// HashSet이 비어 있는지 확인
System.out.println("HashSet이 비어 있는지 확인: " + set.isEmpty());
// 모든 원소 제거
set.clear();
// 모든 원소 제거 후 원소 출력
System.out.println("모든 원소 제거 후 HashSet의 크기: " + set.size());
}
}
'JavaStudy' 카테고리의 다른 글
| [Java] HashMap과 Hashtable (0) | 2023.12.06 |
|---|---|
| [Java] TreeSet (0) | 2023.12.06 |
| [Java] LinkedList (0) | 2023.12.05 |
| [Java] 래퍼클래스(wrapper) (0) | 2023.12.05 |
| [Java] ArrayList (0) | 2023.12.04 |