HashSet
HashSet은 Set 인터페이스를 상속 받아서 구현한 클래스입니다.
Set의 특징을 이어받았기 때문에 중복된 값을 가질 수 없습니다. null 값 또한 1개만 가질 수 있습니다.
정보들은 비선형 구조로 저장되기 때문에 순서가 없으며 index를 사용하지 않습니다.
Hashset은 객체를 저장하기 전에 저장할 객체의 hashCode() method를 호출하여 hashCode를 알아내 저장되어있는 객체들의 hashCode와 비교합니다. 같은 hashCode를 가지는 값이 있다면 equals() 함수를 사용하여 두 객체를 다시 한번 비교하는 과정을 거쳐 true 값을 가지게 되면 중복된 객체로 판단하여 저장하지 않습니다.
사용법
HashSet<String> set1 = new HashSet<>(); //선언 파라미터 값 변경가능
System.out.println("set이 비어있는지 확인 : " + set1.isEmpty());
출력 - set이 비어있는지 확인 : true
set1.add("AAA");
set1.add("BBB");
set1.add("CCC");
set1.add("AAA"); //중복된 값 저장 불가
System.out.println("저장된 값 모두 출력 : " + set1);
출력 - 저장된 값 모두 출력 : [AAA, CCC, BBB] //"AAA" 중복 값 저장 X
set1.remove("BBB");
System.out.println("BBB 값 제거 후 : " + set1);
출력 - BBB 값 제거 후 : [AAA, CCC]
System.out.println("set의 크기 : " + set1.size());
출력 - set의 크기 : 2
System.out.println("set안의 값 있는지 확인 : " + set1.contains("AAA"));
출력 - set안의 값 있는지 확인 : true
728x90
'주제 정리' 카테고리의 다른 글
[운영체제] Lock의 종류 (0) | 2021.08.26 |
---|---|
[아키텍처]마이크로 서비스 (0) | 2021.08.19 |
[JAVA] HashTable, HashMap (0) | 2021.08.12 |
Object 객체 탐구 (0) | 2021.08.07 |
디자인 패턴 23가지 (0) | 2021.08.07 |