[Java] HashSet
by Rev_HashSet이란?
HashSet은 Set 인터페이스의 구현 클래스이다. 그래서 Set 성질을 그대로 상속받는다.
Set의 가장 중요한 특징은 중복이 불가능하고, 순서가 없다는 점이다.
Set 인터페이스를 구현한 클래스로는 HashSet과 TreeSet이 있다. 차이점은 TreeSet에는 자동 정렬 기능이 있다는 것이다.
Set은 비선형 구조이기 때문에 인덱스도 존재하지 않는다. 따라서 값을 추가하거나 삭제할 때는 해당하는 값이 Set 내부에 있는지 검색한 뒤 추가나 삭제를 해야하기 때문에 속도가 List구조에 비해 느리다.
HashSet 생성
HashSet<Integer> h = new HashSet<Integer>();
위 코드를 통해 HashSet을 생성할 수 있다.
초기 저장공간보다 값이 추가로 들어오면, List처럼 저장공간을 늘리는데 Set은 한 칸씩 저장공간을 늘리지 않고 약 두배씩 늘리게 된다. 따라서 초기에 저장할 데이터의 개수를 알고 있다면 Set의 초기용량을 지정해주는 것이 좋다.
HashSet 추가
set.add(1);
set.add(2);
set.add(3);
add()를 통해서 HashSet에 데이터를 추가할 수 있다.
입력되는 값이 HashSet 내부에 존재하지 않는다면 그 값을 HashSet에 추가하고 true를 반환하고, 내부에 값이 존재한다면 false를 반환하게 된다.
HashSet 삭제
set.remove(1);
set.clear();
remove()를 통해서 값을 제거할 수 있다.
입력되는 값이 HashSet 내부에 존재한다면 그 값을 HashSet에서 삭제하고 true를 반환하고, 내부에 값이 존재하지 않는다면 false를 반환하게 된다.
모든 값을 제거하려면 clear()을 사용한다.
HashSet 값 검색
System.out.println(set.contains(1));
HashSet 내부에 원하는 값이 있는지 확인하고 싶다면 set.contains()를 사용한다.
입력된 값을 HashSet이 가지고 있다면 true, 아니면 false를 반환한다.
[Reference]
https://coding-factory.tistory.com/554
[Java] 자바 HashSet 사용법 & 예제 총정리
HashSet이란? HashSet은 Set 인터페이스의 구현 클래스입니다. 그렇기에 Set의 성질을 그대로 상속받습니다. Set은 객체를 중복해서 저장할 수 없고 하나의 null 값만 저장할 수 있습니다. 또한 저장 순
coding-factory.tistory.com
'Language > Java' 카테고리의 다른 글
[Java] Stack 클래스 (0) | 2022.10.11 |
---|---|
[Java] 인터페이스(Interface) (0) | 2022.08.09 |
[Java] Scanner 클래스 (0) | 2022.07.25 |
블로그의 정보
Hi Rev
Rev_