在Java中寻找ConcurrentHashSet吗?


分类:
Java


269人阅读
评论(0)
收藏
举报

方法一:Collections.newSetFromMap(new ConcurrentHashMap<Object,Boolean>())

方法二:(引用自Apache Mina,位置org.apache.mina.util.ConcurrentHashSet)

[java] view plaincopyprint?

  1. packageorg.apache.mina.util;
  2. importjava.util.Collection;
  3. importjava.util.Set;
  4. importjava.util.concurrent.ConcurrentHashMap;
  5. importjava.util.concurrent.ConcurrentMap;
  6. /**
  7. *A{@linkConcurrentHashMap}-backed{@linkSet}.
  8. *
  9. *@author<ahref="http://mina.apache.org"mce_href="http://mina.apache.org">ApacheMINAProject</a>
  10. */
  11. publicclassConcurrentHashSet<E>extendsMapBackedSet<E>{
  12. privatestaticfinallongserialVersionUID=8518578988740277828L;
  13. publicConcurrentHashSet(){
  14. super(newConcurrentHashMap<E,Boolean>());
  15. }
  16. publicConcurrentHashSet(Collection<E>c){
  17. super(newConcurrentHashMap<E,Boolean>(),c);
  18. }
  19. @Override
  20. publicbooleanadd(Eo){
  21. Booleananswer=((ConcurrentMap<E,Boolean>)map).putIfAbsent(o,Boolean.TRUE);
  22. returnanswer==null;
  23. }
  24. }

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。