HashMap和HashSet的不同之處簡介說明
阿新 • • 發佈:2021-10-21
下文筆者將從HashMap及HashSet的概念著手處理其不同之處,如下所示:
轉自:http://www.java265.com/JavaMianJing/202110/16347847421524.html
HashSet的簡介
HashSet實現Set介面
HashSet中的內容不允許有重複的值
當我們使用HashSet之前
需確保物件重寫equals()和hashCode()方法
然後比較物件的值是否相等
以確保set中沒有儲存相等的物件
當沒有重寫這兩個方法,將會使用這個方法的預設實現
//新增元素 public boolean add(object o);
HashMap的簡介
HashMap實現了Map介面
Map介面對鍵值對進行對映
Map中不允許重複的鍵key
Map介面有兩個基本的實現,HashMap和TreeMap
TreeMap儲存了物件的排列次序,而HashMap則不能
HashMap允許鍵和值為null
HashMap是非synchronized的
但collection框架提供方法能保證HashMap synchronized
這樣多個執行緒同時訪問HashMap時,能保證只有一個執行緒更改Map
新增元素的方法 public Object put(Object Key,Object value)
根據以上的簡介說明,我們可以得出HashSet和HashMap的區別
HashMap | HashSet |
HashMap實現了Map介面 | HashSet實現了Set介面 |
HashMap儲存鍵值對 | HashSet僅僅儲存物件 |
使用put()方法將元素放入map中 | 使用add()方法將元素放入set中 |
HashMap中使用鍵物件來計算hashcode值 | HashSet使用成員物件來計算hashcode值,對於兩個物件來說hashcode可能相同,所以equals()方法用來判斷物件的相等性,如果兩個物件不同的話,那麼返回false |
HashMap比較快,使用唯一的鍵來獲取物件 | HashSet較HashMap來說比較慢 |