HashSet與HashMap的區別


HashSet與HashMap的區別

1.HashSet:

  HashSet實現了Set接口,它不允許集合中出現重復元素。當我們提到HashSet時,第一件事就是在將對象存儲在

HashSet之前,要確保重寫hashCode()方法和equals()方法,這樣才能比較對象的值是否相等,確保集合中沒有

儲存相同的對象。如果不重寫上述兩個方法,那么將使用下面方法默認實現:

 public boolean add(Object obj)方法用在Set添加元素時,如果元素值重復時返回 "false",如果添加成功則返回"true"


2.HashMap:

  HashMap實現了Map接口,Map接口對鍵值對進行映射。Map中不允許出現重復的鍵(Key)。Map接口有兩個基本的實現

TreeMap和HashMap。TreeMap保存了對象的排列次序,而HashMap不能。HashMap可以有空的鍵值對(Key(null)-Value(null))

HashMap是非線程安全的(非Synchronize),要想實現線程安全,那么需要調用collections類的靜態方法synchronizeMap()實現。

public Object put(Object Key,Object value)方法用來將元素添加到map中。

 

3.HashSet與HashMap的區別:

(1)HashMap	                               
	a.實現了Map接口	                        
	b.存儲鍵值對	                            
	c.調用put()向map中添加元素				
	d.HashMap使用鍵(Key)計算Hashcode		
	e.HashMap相對於HashSet較快,				
	因為它是使用唯一的鍵獲取對象			
(2)HashSet
	a.實現Set接口
	b.僅存儲對象
	c.調用add()方法向Set中添加元素
	d.HashSet使用成員對象來計算hashcode值,
	  對於兩個對象來說hashcode可能相同,
	  所以equals()方法用來判斷對象的相等性,
	  如果兩個對象不同的話,那么返回false
	e.HashSet較HashMap來說比較慢

 

  


免責聲明!

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



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