自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對比 HashMap,HashTable,TreeMap區(qū)別?很多人不知道

開發(fā) 前端
HashMap實現(xiàn)了Map接口,繼承AbstractMap,它是基于哈希表的 Map 接口的實現(xiàn)。

[[376037]]

本文轉(zhuǎn)載自微信公眾號「程序員漫畫編程」,作者程序職場 。轉(zhuǎn)載本文請聯(lián)系程序員漫畫編程公眾號。   

01概念

HashMap

HashMap實現(xiàn)了Map接口,繼承AbstractMap,它是基于哈希表的 Map 接口的實現(xiàn)。

HashMap是引用數(shù)據(jù)類型。

Hashtable

Hashtable:是Map接口的另外一個實現(xiàn)類,和HashMap用法類似,同時也有區(qū)別。

treeMap

TreeMap:基于紅黑樹(Red-Black tree)的 NavigableMap實現(xiàn)。該映射根據(jù)其鍵的自然順序進行排序,或者根據(jù)創(chuàng)建映射時提供的Comparator進行排序,具體取決于使用的構造方法。

02區(qū)別

1. HashTable的方法是同步的,HashMap未經(jīng)同步,所以在多線程場合要手動同步HashMap這個區(qū)別就像Vector和ArrayList一樣。

2. HashTable不允許null值,key和value都不可以,HashMap允許null值,key和value都可以。

3. HashTable有一個contains(Object value)功能和containsValue(Object value)功能一樣。

4. HashTable使用Enumeration,HashMap使用Iterator。

5. HashTable中hash數(shù)組默認大小是11,增加的方式是 old*2+1。HashMap中hash數(shù)組的默認大小是16,而且一定是2的指數(shù)。

6. 哈希值的使用不同,HashTable直接使用對象的hashCode。

7,這三個都對Map接口進行了實現(xiàn)

03安全性

1.HashMap是不安全的線程,他允許Key值出現(xiàn)一次null Value值出現(xiàn)無數(shù)次的Null

2.Hashtable是安全的線程,他不僅實現(xiàn)了Map接口也實現(xiàn)了Dictionary接口,他的key值與Value值都不允許出現(xiàn)Null

3.treeMap 非線程安全 可以進行排序的,默認按照鍵的自然順序進行升序排序,若要進行降序排序則需要在構造集合時候傳遞一個比較器。

04關系圖

05實例應用

  1. class  HashMaps    
  2. {    
  3.        public static void main(String[] args)     
  4.       {    
  5.             Map map=new HashMap();                
  6.             map.put(“a”, “aaa”);    
  7.             map.put(“b”, “bbb”);    
  8.             map.put(“c”, “ccc”);    
  9.             map.put(“d”, “ddd”);    
  10.             Iterator iterator = map.keySet().iterator();                
  11.             while (iterator.hasNext()) {    
  12.              Object key = iterator.next();    
  13.              System.out.println(“map.get(keyis :”+map.get(key));    
  14.             }          
  15.                    
  16.  
  17.             Hashtable tab=new Hashtable();                
  18.             tab.put(“a”, “aaa”);    
  19.             tab.put(“b”, “bbb”);    
  20.             tab.put(“c”, “ccc”);    
  21.             tab.put(“d”, “ddd”);    
  22.             Iterator iterator_1 = tab.keySet().iterator();    
  23.             while (iterator_1.hasNext()) {    
  24.              Object key = iterator_1.next();    
  25.              System.out.println(“tab.get(keyis :”+tab.get(key));    
  26.             } 
  27.  
  28.  
  29.             TreeMap tmp=new TreeMap();                
  30.             tmp.put(“a”, “aaa”);    
  31.             tmp.put(“b”, “bbb”);    
  32.             tmp.put(“c”, “ccc”);    
  33.             tmp.put(“d”, “ddd”);    
  34.             Iterator iterator_2 = tmp.keySet().iterator();    
  35.             while (iterator_2.hasNext()) {    
  36.              Object key = iterator_2.next();    
  37.              System.out.println(“tmp.get(keyis :”+tmp.get(key));    
  38.             }             
  39.         }    
  40.     } 
責任編輯:武曉燕 來源: 程序員漫畫編程
相關推薦

2020-06-29 08:28:36

v-for 解構函數(shù)

2020-07-14 08:43:54

VueHTML函數(shù)

2015-07-22 11:53:29

云計算AWS分析癱瘓

2021-08-24 00:13:23

Windows 10Windows微軟

2019-01-07 09:27:39

2021-08-27 10:03:12

人工智能AI

2020-11-20 06:13:04

Like %

2022-12-05 15:23:33

JavaScript技巧運算符

2020-07-07 08:35:53

VueKey組件

2020-07-01 08:36:43

CSS規(guī)范web

2018-08-10 10:36:25

SSL證書誤區(qū)

2019-12-13 19:52:29

人工智能AI

2023-06-05 08:07:34

聚集索引存儲數(shù)據(jù)

2021-01-12 12:33:20

Pandas技巧代碼

2021-01-07 05:27:20

包導入變量

2021-05-08 23:19:25

微信存儲小程序

2022-06-23 13:13:36

GitHub開發(fā)技巧

2025-04-16 07:06:43

2019-03-25 15:21:42

瀏覽器 Edge 微軟

2021-11-02 19:14:58

Spring數(shù)據(jù)
點贊
收藏

51CTO技術棧公眾號