读书人

ConcurrentHashSet简略实现

发布时间: 2012-12-22 12:05:06 作者: rapoo

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来间接实现

读书人网 >编程

热点推荐