HashSet
중복 값을 허용하지 않는다는 사실 외에도 HashMap
와 HashSet
? 의 차이점은 무엇 입니까?
나는 현명한 구현을 의미합니까? 둘 다 해시 테이블 을 사용 하여 값을 저장 하기 때문에 약간 모호 합니다.
답변
그것들은 완전히 다른 구성입니다. 의 HashMap
구현입니다 Map
. 지도 키를 값에 매핑합니다. 키 조회는 해시를 사용하여 발생합니다.
반면에 a HashSet
는의 구현입니다 Set
. 설정은 집합의 수학적 모델에 맞게 설계되었습니다. 언급했듯이 A HashSet
는 HashMap
구현을 지원하기 위해 a 를 사용합니다 . 그러나 완전히 다른 인터페이스를 구현합니다.
Collection
자신의 목적에 가장 적합한 것이 무엇인지 찾고 있다면 이 자습서 는 좋은 출발점입니다. 실제로 무슨 일이 일어나고 있는지 알고 싶다면 그 책 도 있습니다.
답변
HashSet은 집합입니다 (예 : {1,2,3,4,5}).
HashMap은 키-> 값 (키 대 값) 맵입니다 (예 : {a-> 1, b-> 2, c-> 2, d-> 1}).
위의 예제에서 HashMap에는 중복 키가 없어야하지만 중복 값이있을 수 있습니다.
HashSet에는 중복 요소가 없어야합니다.
답변
해시 세트
- HashSet 클래스는 Set 인터페이스를 구현합니다.
- HashSet에는 객체 (요소 또는 값)를 저장합니다. 예를 들어 문자열 요소의 HashSet이있는 경우 HashSet 요소 집합을 나타낼 수 있습니다. {“Hello”,“Hi”,“Bye”,“Run”}
- HashSet은 중복 요소를 허용하지 않으므로 HashSet에 중복 값을 저장할 수 없습니다.
- HashSet은 단일 null 값을 가질 수 있습니다.
-
HashSet이 동기화되지 않았으므로 명시 적으로 동기화하지 않는 한 스레드 안전 작업에 적합하지 않습니다. [유사]
add contains next notes HashSet O(1) O(1) O(h/n) h is the table
해시 맵
- HashMap 클래스는 Map 인터페이스를 구현합니다.
- HashMap은 키 및 값 쌍을 저장하는 데 사용됩니다. 즉, 키와 값의 매핑을 유지 관리합니다 (HashMap 클래스는 동기화되지 않고 null을 허용한다는 점을 제외하고는 Hashtable과 거의 동일합니다). 예 : {1->”Hello”, 2->”Hi”, 3->”Bye”, 4->”Run”}
- HashMap은 중복 키를 허용하지 않지만 중복 값을 가질 수 있습니다.
- HashMap은 단일 널 키와 임의의 수의 널 값을 허용합니다.
-
HashMap이 동기화되지 않았으므로 명시 적으로 동기화하지 않는 한 스레드 안전 작업에 적합하지 않습니다. [유사]
get containsKey next Notes HashMap O(1) O(1) O(h/n) h is the table
자세한 내용은 이 기사 를 참조하십시오 .
답변
두 이름이 모두 Hash로 시작한다는 것은 정말 부끄러운 일입니다 . 그것은 그들 중 가장 중요한 부분입니다. 중요한 부분은 다른 사람들이 지적했듯이 해시 – 집합 및 지도 뒤에옵니다 . 그것들 각각 은 순서가없는 컬렉션 인 세트 와 맵 이있는 액세스가 가능한 컬렉션 인 세트입니다. 그것들은 이름에서 유래 한 해시로 구현되지만 그들의 본질은 이름의 그 부분 뒤에 숨겨져 있습니다.
그들의 이름으로 혼동하지 마십시오. 그들은 매우 다른 것들입니다.
답변
Hashset
내부적으로 구현 HashMap
. 내부 구현을 보면 HashSet에 삽입 된 값은 HashMap에 키로 저장되며 값은 Object 클래스의 Dummy 객체입니다.
HashMap과 HashSet의 차이점은 다음과 같습니다.
HashMap
키 값 쌍을 포함하며 get 메소드가 없으므로 매번 HashSet을 반복해야하므로 키로 각 값에 액세스 할 수 있습니다.HashMap
Map 인터페이스를 구현하고 하나의 null 값을 키로 허용하고 여러 null 값을 값으로 허용합니다 .SetHashSet
인터페이스 를 구현하는 경우 하나의 null 값만 허용하고 중복 된 값은 허용하지 않습니다. HashSet은 HashMap을 내부적으로 구현합니다.HashSet
그리고HashMap
반복하면서 삽입의 순서를 유지하지 않습니다.
답변
HashSet을 사용하면 HashMap을 사용하여 키와 값을 기준으로 객체를 저장할 수있는 세트에 객체를 저장할 수 있습니다. 모든 객체 또는 저장된 객체에는 키가 있습니다.
답변
이름에서 알 수 있듯이 HashMap 은 연관 맵 (키에서 값으로 매핑)이며 HashSet 은 Set 입니다.