HashSet 과 HashMap 의 관계
1546 단어 자바
public class HashSet
extends AbstractSet
implements Set, Cloneable, java.io.Serializable
{
static final long serialVersionUID = -5024744406713321676L;
private transient HashMap map;
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
/**
* Constructs a new, empty set; the backing HashMap instance has
* default initial capacity (16) and load factor (0.75).
*/
public HashSet() {
map = new HashMap();
}
.........
/**
* Returns an iterator over the elements in this set. The elements
* are returned in no particular order.
*
* @return an Iterator over the elements in this set
* @see ConcurrentModificationException
*/
public Iterator iterator() {
return map.keySet().iterator();
}
나 도 이런 면접 관 을 만난 적 이 있 는 것 같다. 이 두 사람의 관 계 를 물 어 보 니 HashSet 이 HashMap 을 사용 하 는 것 이 었 구나. value 만 생략 하고 key 만 사용 했다.
그러면 hashMap 과 hashtable 의 차 이 는 hashmap 는 스 레 드 가 안전 하지 않 고 속도 가 빠 릅 니 다.hashtable 은 스 레 드 가 안전 하고 속도 가 느 립 니 다.
hashMap 과 자바 5 의 병렬 라 이브 러 리 에 있 는 Concurrent HashMap 의 차 이 는 hashmap 가 스 레 드 가 안전 하지 않 은 것 인지, 후 자 는 스 레 드 가 안전 하고 속도 도 느 리 지 않 을 것 입 니 다. 16 배 올 랐 다 고 합 니 다.
concurrent HashMap 에 세그먼트 잠 금 개념 이 추가 되 었 습 니 다. 큰 맵 을 N 개의 hashtable 과 유사 한 hashtable 로 나 누 어 key. hascode () 에 따라 key 를 그 hashtable 에 두 기로 결정 한 것 으로 이해 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.