map的鍵值對哪一個必須是唯一的?
是唯一的 HashSet可以有重復的
1、HashMap:底層數據結構是哈希表,線程不安全,允許null鍵和null值
2、Hashtable:
線程安全的,不允許null鍵和null值,效率低,給整個方法添加synchronized,太笨重
3、LinkedHashMap:
底層數據結構是鏈表和哈希表,由鏈表保證有序(存儲和取出的順序一致),哈希表保證唯一,線程不安全
4、TreeMap:
底層數據結構是紅黑樹(一種自平衡的二叉樹),可以按照某種規則進行排序,自然排序和選擇器排序,線程不安全
5、ConcurrentHashMap:
● 線程安全的,不允許null鍵和null值
● 對與多線程的操作,介于HashMap與Hashtable之間。
● 內部采用"鎖分段"機制代替Hashtable的獨占鎖。進而提高性能。
【查看源碼:Hashtable是給整個方法上面添加synchronized,而ConcurrentHashMap是給可能出現線程安全問題的代碼用同步代碼塊的方式加鎖】
● 獲取操作(包括 get)通常不會受阻塞
上一篇數組初始化能用式子嗎