zoukankan      html  css  js  c++  java
  • 深入Java集合学习系列:ConcurrentHashSet简单实现

    http://momsbaby1986.iteye.com/blog/1452022

    java没有提供ConcurrentHashSet, 可以通过ConcurrentHashMap来间接实现


    Java代码  收藏代码
    1. import java.util.AbstractSet;  
    2. import java.util.ConcurrentModificationException;  
    3. import java.util.Iterator;  
    4. import java.util.Set;  
    5. import java.util.concurrent.ConcurrentHashMap;  
    6.   
    7. public class ConcurrentHashSet<E> extends AbstractSet<E> implements Set<E>, java.io.Serializable {  
    8.   
    9.     private static final long serialVersionUID = -8672117787651310382L;  
    10.   
    11.     private static final Object PRESENT = new Object();  
    12.   
    13.     private final ConcurrentHashMap<E, Object> map;  
    14.       
    15.     public ConcurrentHashSet(){  
    16.         map = new ConcurrentHashMap<E, Object>();  
    17.     }  
    18.   
    19.     public ConcurrentHashSet(int initialCapacity){  
    20.         map = new ConcurrentHashMap<E, Object>(initialCapacity);  
    21.     }  
    22.     
    23.     public Iterator<E> iterator() {  
    24.         return map.keySet().iterator();  
    25.     }  

    26.     public int size() {  
    27.         return map.size();  
    28.     }  

    29.     public boolean isEmpty() {  
    30.         return map.isEmpty();  
    31.     }  

    32.     public boolean contains(Object o) {  
    33.         return map.containsKey(o);  
    34.     } 
    35.  
    36.     public boolean add(E e) {  
    37.         return map.put(e, PRESENT) == null;  
    38.     }  

    39.     public boolean remove(Object o) {  
    40.         return map.remove(o) == PRESENT;  
    41.     }  

    42.     public void clear() {  
    43.         map.clear();  
    44.     }  

     


  • 相关阅读:
    [北京.NET俱乐部]征集T恤设计方案
    [新功能]个人Blog首页分页浏览
    [公告]关于用户资料的保密
    奇怪的邮件与MSN密码
    文章发布功能改动
    [活动]北京.NET俱乐部首次活动照片及讲课资料
    [活动公告]上海.NET俱乐部首次活动预告
    [征询意见]关于开设.NET 2.0专题
    [北京.NET俱乐部活动]参加者签名并谈一下感受
    CSS3 transform 2D实验(1)
  • 原文地址:https://www.cnblogs.com/leeeee/p/7276057.html
Copyright © 2011-2022 走看看