컬렉션 프레임워크 (Collection Framework) - 4.1. HashSet

CJI0524·2024년 7월 11일

Java/Collection Framework

목록 보기
12/26

1. HashSet

HashSetSet 인터페이스를 구현한 대표적인 컬렉션으로 중복된 요소를 저장하지 않는다. 만약 중복된 요소를 추가하고자 add 메서드 등을 사용한다면 이 메서드들은 false를 반환함으로써 중복된 요소이기 때문에 추가에 실패했다는 것을 알린다.

또한 HashSet클래스는 저장 순서를 유지하지 않기때문에 저장순서를 유지하고자 한다면 LinkedHashSet컬렉션을 사용해야 한다.

2. HashSet 인터페이스에 정의된 메서드 목록

반환타입이 boolean인 메서드들은 작업에 성공하거나 사실이면 true, 아니면 false를 반환한다.

2.1. 생성자

메서드기능
HashSet()HashSet 객체를 생성
HashSet(Collection c)주어진 컬렉션을 포함하는 HashSet 객체를 생성
HashSet(int initialCapacity)주어진 값을 초기용량으로 하는 HashSet 객체를 생성
HashSet(int initalCapacity, float loadFactor)초기용량과 load factor를 지정하는 생성자

2.2. 삽입 / 탐색 / 삭제 메서드

삽입

메서드기능
boolean add(Object o)
boolean addAll(Collection c)
지정된 객체(o) 또는 Collection(c)의 객체들을 HashSet에 추가.

탐색

메서드기능
boolean contains(Object o)
boolean containsAll(Collection c)
지정된 객체(o) 또는 Collection(c)의 객체들이 포함되어 있는지 확인.

삭제

메서드기능
boolean remove(Object o)
boolean removeAll(Collection c)
지정된 객체(o) 또는 Collection(c)의 객체들을 삭제.
boolean retainAll(Collection c)지정된 Collection에 포함된 객체만을 남기고, 다른 객체들은 HashSet에서 삭제
집합의 교집합 개념과 유사함.
void clear()HashSet의 모든 객체를 삭제

2.3. 추가 핵심 기능

Object 메서드

메서드기능
boolean equals(Object o)동일한 HashSet인지 확인
int hashCode()HashSet의 해시 코드를 반환
Object clone()HashSet을 복제해서 반환 (얕은 복사)

컬렉션에 저장된 요소 접근

메서드기능
Iterator iterator()해당 HashSet의 iterator를 얻어서 반환

컬렉션 상태 체크 / 변경

메서드기능
boolean isEmpty()HashSet이 비어있는지 확인
int size()HashSet에 저장된 객체의 개수를 반환

2.4. 기타

메서드기능
Object[] toArray()HashSet에 저장된 객체를 객체배열(Object[])로 반환
Object[] toArray(Object[] a)지정된 배열에 HashSet의 객체를 저장해서 반환

이러한 기능을 가진 HashSet 클래스를 LinkedHashSet 클래스가 상속받는다.

3. 해당 게시글 작성에 참고한 글 목록

자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서

profile
개발돌이

0개의 댓글