• 深入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.     }  

     


  • 相关阅读:
    使用SVG symbols建立图标系统完整指南
    ural 1874 Football Goal
    ural 1572 Yekaterinozavodsk Great Well
    ural 1084 Goat in the Garden
    ural 1192 Ball in a Dream
    ural 1020 Rope
    ural 1494 Monobilliards
    ural 1671 Anansi's Cobweb
    ural 1613 For Fans of Statistics
    ural 1126 Magnetic Storms
  • 原文地址:https://www.cnblogs.com/leeeee/p/7276057.html
Copyright © 2020-2023  润新知