logo

Java의 HashSet과 HashMap 클래스의 차이점

그만큼 해시맵 그리고 해시세트 Java에서는 가장 인기 있는 컬렉션 클래스입니다. 둘 다 데이터 구조에 사용됩니다. 다음 표에서는 HashMap과 HashSet의 차이점을 설명합니다.

기초 해시맵 해시세트
정의 Java HashMap은 Map 인터페이스의 해시 테이블 기반 구현입니다. HashSet은 세트입니다. 저장을 위해 해시 테이블을 사용하는 컬렉션을 생성합니다.
구현 HashMap 구현 지도, 복제 가능, 직렬화 가능 인터페이스 예. HashSet 구현 설정, 복제 가능, 직렬화 가능, 반복 가능 그리고 수집 인터페이스.
백화점 HashMap에는 다음을 저장합니다. 키-값 쌍 . 키와 값의 매핑을 유지합니다. HashSet에는 다음을 저장합니다. 사물 .
중복된 값 그것은 허용하지 않습니다 중복 키 , 하지만 중복된 값 ~이다 허용된 . 그것은 허용하지 않습니다 중복된 값 .
Null 값 이는 다음을 포함할 수 있습니다. 단일 널 키 그리고 다중 null 값 . 그것은 다음을 포함할 수 있습니다 단일 null 값 .
삽입 방법 HashMap은 놓다() HashMap에 요소를 추가하는 메서드입니다. HashSet은 추가하다() HashSet에 요소를 추가하는 메서드입니다.
성능 해시맵은 더 빠르게/ 값이 고유 키와 연결되어 있기 때문에 HashSet보다 좋습니다. 해시셋은 더 느리게 멤버 개체는 두 개체에 대해 동일할 수 있는 해시코드 값을 계산하는 데 사용되기 때문에 HashMap과 다릅니다.
개체 수 오직 하나 추가 작업 중에 개체가 생성됩니다. 있다 Put 작업 중에 생성된 객체(하나는 열쇠 그리고 하나는 .
저장 메커니즘 HashMap은 내부적으로 사용합니다. 해싱 물건을 저장하는 것. HashSet은 내부적으로 해시맵 물건을 저장하는 물건.
용도 우리가 유지하지 않을 때 항상 선호 독특함 . 유지관리가 필요할 때 사용됩니다. 독특함 데이터.
{a->4, b->9, c->5} 어디 에이, 비, 씨 ~이다 열쇠 그리고 4, 9, 5 ~이다 가치 키와 연관되어 있습니다. {6, 43, 2, 90, 4} 집합을 나타냅니다.

프로그램을 통해 차이점을 이해해보자.

HashMap의 예

다음 예에서는 동일한 키와 다른 값을 가진 중복 요소를 추가하면 키의 이전 값이 새 값으로 대체됩니다.

동일한 키와 동일한 값을 가진 중복 요소를 추가하면 키-값 쌍이 두 번째로 저장되지 않습니다.

 import java.util.*; public class HashMapExample { public static void main(String args[]) { //creating object of HashMap HashMap hm= new HashMap(); //adding key-value pair hm.put('John', 23); hm.put('Monty', 27 ); hm.put('Richard', 21); hm.put('Devid', 19); System.out.println('Before adding duplicate keys: '); System.out.println(hm); //adding duplicate keys hm.put('Monty', 25); //replace the Monty's previous age hm.put('Devid', 19); System.out.println('After adding duplicate keys: '); System.out.println(hm); } } 

산출:

Java의 HashSet과 HashMap 클래스의 차이점

HashSet의 예

다음 예에서는 중복된 값이 HashSet에 저장되지 않고 null 값이 한 번만 저장되는 것을 볼 수 있습니다.

 import java.util.*; public class HashSetExample { public static void main(String args[]) { //creating object of HashSet HashSet hs= new HashSet(); //adding values to HashSet hs.add('Java'); hs.add('Python'); hs.add('C++'); hs.add('C'); System.out.println('Before adding duplicate and null values: '); System.out.println(hs); //adding duplicate values hs.add('Python'); hs.add('C'); System.out.println('After adding duplicate values: '); System.out.println(hs); //adding null values hs.add(null); hs.add(null); System.out.println('After adding null values: '); System.out.println(hs); } } 

산출:

Java의 HashSet과 HashMap 클래스의 차이점