首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

ConcurrentHashSet简略实现

2012-12-22 
ConcurrentHashSet简单实现?import java.util.AbstractSetimport java.util.ConcurrentModificationExcep

ConcurrentHashSet简单实现

?

import java.util.AbstractSet;import java.util.ConcurrentModificationException;import java.util.Iterator;import java.util.Set;import java.util.concurrent.ConcurrentHashMap;public class ConcurrentHashSet<E> extends AbstractSet<E> implements Set<E>, java.io.Serializable {private static final long serialVersionUID = -8672117787651310382L;private static final Object PRESENT = new Object();private final ConcurrentHashMap<E, Object> map;public ConcurrentHashSet(){    map = new ConcurrentHashMap<E, Object>();}                public ConcurrentHashSet(int initialCapacity){        map = new ConcurrentHashMap<E, Object>(initialCapacity);    }                public Iterator<E> iterator() {return map.keySet().iterator();}public int size() {return map.size();}public boolean isEmpty() {return map.isEmpty();}public boolean contains(Object o) {return map.containsKey(o);}public boolean add(E e) {return map.put(e, PRESENT) == null;}public boolean remove(Object o) {return map.remove(o) == PRESENT;}public void clear() {map.clear();}

?

?

通过ConcurrentHashMap来间接实现

热点排行