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);
'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 |
댓글