본문 바로가기
Java

HashSet

by KDW999 2023. 2. 17.

HashSet

ㅡ Set 인터페이스의 구현 클래스로 Set 성질을 갖고 있다

ㅡ Set은 저장한 값들이 순서가 없으며 중복을 허용하지 않는다. / null 저장 가능 / 저장 순서는 LinkedHashSet

 

순서가 없으니 인덱스가 없으며 값을 찾거나 지울 때 저장되어있는 값들을 일일이 탐색해야하기 때문에 List보다 느릴 수 있다.

 

HashSet 선언

HashSet<String> hs = new HashSet<String>();

 

HashSet도 마찬가지로 new에서 데이터 타입과 초기값을 생략하고 선언해줄 수도 있다.

 

HashSet 값 추가

hs.add("야");
hs.add("호");

 

HashSet 값 제거

hs.remove("호"); // "호" 제거
hs.clear(); // 모든 값 제거

 

HashSet 크기 출력

System.out.println(hs.size());

 

HashSet 값 출력 / 검색

Iterator it = hs.iterator(); // Collection 요소에 접근, 반복 작업 시 사용하는 객체

while(it.hasNext()){  // hasNext() : 다음 요소가 있는지 확인, true / false
  System.out.println(it.next()); // next() : 다음 요소 반환
}

System.out.println(hs.contains("A"); // 해당 값이 있는지 확인, true / false

 

++

HashMap과 HashSet 활용

Map 데이터 타입에 HashSet을 넣어서 사용하면

Map의 key에 value로 hashSet을 넣어서 하나의 key에 하나의 Hash로 된 여러 값을 넣을 수 있다.

HashMap<String, HashSet<Integer>> hm2 = new HashMap<>();

hm2.put("A", new HashSet<>());

hm2.get("A").add(1);
hm2.get("A").add(2);
hm2.get("A").add(3);

System.out.println(hm2);

 

 

참고 : https://coding-factory.tistory.com/554 

'Java' 카테고리의 다른 글

BufferedReader / StringTokenizer 사용  (0) 2023.04.04
Queue 선언 / 값 추가, 삭제, 확인  (0) 2023.03.28
isEmpty(), isBlank()  (0) 2023.01.29
MySQL 데이터 이클립스에서 사용  (0) 2023.01.26
이클립스, MySQL 파일 연동  (0) 2023.01.26

댓글