[Java]HashSetの仕組み
3312 ワード
HashSet<String> set = new HashSet<String>();
set.add(" ");
set.add(" ");
set.add(" ");
set.add(" ");
set.add(" ");
set.add(" ");
set.add(" ");
set.add(" ");
その大まかな構成は次のとおりです.
private transient HashMap<E,Object> map;
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
map
はHashSet
全体のコアであり、PRESENT
は偽のvalueを作るために使用される.2.基本操作public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
public boolean remove(Object o) {
return map.remove(o)==PRESENT;
}
public boolean contains(Object o) {
return map.containsKey(o);
}
public int size() {
return map.size();
}
基本的な操作も非常に簡単で、HashMapを呼び出す関連方法で、valueは前のdummyのObjectです.だから、HashMapの実現を知ればいいのです.