關于ConcurrentHashMap的擴容操作

關于ConcurrentHashMap

在并發編程中,經常會用到ConcurrentHashMap,因為HashMap是非線程安全的,而ConcurrentHashMap是線程安全的。項目中通常會對ConcurrentHashMap進行封裝,此時就會涉及到對ConcurrentHashMap擴容的操作。

代碼實現:

<pre>
import java.util.concurrent.ConcurrentHashMap;

/**

  • Created by lenvovo on 2016/9/23.
    */
    public class TestCopy {

    public static ConcurrentHashMap<String,String> names = new ConcurrentHashMap<>(6666);

    static {
    for(int i=0;i<18;i++){
    names.put("jack"+i,"jacklee"+i);
    }
    }
    public static void main(String []args){
    ConcurrentHashMap<String,String> copy_names = new ConcurrentHashMap<>(88888);
    for(ConcurrentHashMap.Entry<String,String> name:names.entrySet()){
    System.out.println(name.getKey()+'\t'+name.getValue());
    copy_names.put(name.getKey(),name.getValue());

     }
     System.out.println("nmaes size -----:"+names.size());//返回的是含有數據的大小-->18,而不是容量大小
     System.out.println("nmaes size -----:"+copy_names.size());
    
     for(ConcurrentHashMap.Entry<String,String> copy_name:copy_names.entrySet()){
         System.out.println(copy_name.getKey()+'\t'+copy_name.getValue());
     }
    

    }
    }

</pre>

經測試,以上代碼能實現ConcurrentHashMap數據的復制,即能實現ConcurrentHashMap的擴容。

參考:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容