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來說比較慢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM