HashSet
자바에서 제공하는 set 컬렉션 클래스 중 하나. (Collection 인터페이스를 상속받은 자식 interface)
중복을 허용하지 않고, 순서를 유지하지 않는 데이터 저장 구조.
기본적으로 HashMap을 기반으로 동작하며, 값을 Map의 key로 저장.
같은 값이 여러 번 들어오는 걸 막고 싶을 때 / 빠르게 포함 여부(contains())를 확인하고 싶을 때 / 순서보다는 중복 없는 값의 집합이 필요한 경우에 사용한다.
※ 형식
Set<자료형> 객체명 = new HashSet<자료형>();
HashSet<자료형> 객체명 = new HashSet<자료형>();
▶ 메서드
* 요소 추가
Set<String> animals = new HashSet<>();
animals.add("cat");
animals.add("dog");
animals.add("cat");
System.out.println(animals);
// => [cat, dog]
add(추가할 값) : 마지막에 값을 추가한다.
add(인덱스번호, 추가할 값) : 해당 인덱스에 값을 추가하고 기존의 인덱스 번호부터 ~ 마지막 인덱스까지 한 칸씩 뒤로 미룬다.
요소 추가할 때 중복값은 무시되고 한 번만 저장된다.
* 요소 제거
animals.remove("cat");
System.out.println(animals);
// => [dog]
remove(객체) : 객체를 삭제한다.
remove(값) : 처음 인덱스부터 순서대로 겁색항 처음 해당되는 값만 삭제한다.(중복값이 존재하는 경우는 맨 처음 값만 제거됨)
clear() : 해당 객체를 주소값만 제외한 요소 전체를 제거한다.
* 요소 포함 여부 확인
System.out.println(animals.contains("cat")); // => false
System.out.println(animals.contains("dog")); // => true
contains(객체) : 요소의 포함 여부를 확인한다.
animals.clear(); // => 객체 비우기
System.out.println(animals); // => []
System.out.println(animals.inEmpty()); //=> true (비어있음)
isEmpty() : 객체가 비어있음을 확인
* 저장된 요소 크기(개수)
animals.add("hamster");
animals.add("bird");
System.out.println(animals.size()); // => 2
size() : 객체의 크기
* 반복
// 형식
// Iterator<자료형> 객체명 = 한 줄로 나열된 객체명.iterator();
Iterator<String> a = animals.iterator();
while (a.hasNext()) {
System.out.println(a.next());
}
Iterator : 한 줄로 나열된(순서 상관 없음. Set, List 가능) 데이터를 하나씩 떼어서 반복해서 가져올 수 있는 자료형
hasNext() : 다음 요소가 있는지 확인, 데이터를 가져오지 않음. true / false(boolean)으로 값의 유무를 반환함.
next(): 다음의 요소 한 개를 가져옴. 해당 값을 반환함
'공부 > JAVA' 카테고리의 다른 글
| [JAVA] 문자열 쪼개기 StringTokenizer (0) | 2025.05.01 |
|---|---|
| [JAVA] BufferedReader와 BufferedWriter (0) | 2025.04.30 |
| [JAVA] 문자열 비교 equals() (0) | 2025.04.08 |
| [Java] 특정 문자 인덱스, 배열 인덱스를 찾는 indexOf() (0) | 2025.02.23 |
| [JAVA] ArrayList (0) | 2025.02.08 |