在Java中寻找ConcurrentHashSet吗?
分类:
Java
2011-05-11 09:37
269人阅读
评论(0)
收藏
举报
方法一:Collections.newSetFromMap(new ConcurrentHashMap<Object,Boolean>())
方法二:(引用自Apache Mina,位置org.apache.mina.util.ConcurrentHashSet)
- packageorg.apache.mina.util;
- importjava.util.Collection;
- importjava.util.Set;
- importjava.util.concurrent.ConcurrentHashMap;
- importjava.util.concurrent.ConcurrentMap;
- /**
- *A{@linkConcurrentHashMap}-backed{@linkSet}.
- *
- *@author<ahref="http://mina.apache.org"mce_href="http://mina.apache.org">ApacheMINAProject</a>
- */
- publicclassConcurrentHashSet<E>extendsMapBackedSet<E>{
- privatestaticfinallongserialVersionUID=8518578988740277828L;
- publicConcurrentHashSet(){
- super(newConcurrentHashMap<E,Boolean>());
- }
- publicConcurrentHashSet(Collection<E>c){
- super(newConcurrentHashMap<E,Boolean>(),c);
- }
- @Override
- publicbooleanadd(Eo){
- Booleananswer=((ConcurrentMap<E,Boolean>)map).putIfAbsent(o,Boolean.TRUE);
- returnanswer==null;
- }
- }