1. 程式人生 > 其它 >HashMap和HashSet的不同之處簡介說明

HashMap和HashSet的不同之處簡介說明

下文筆者將從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來說比較慢