HashSet和HashMap及其相關知識

2021-09-26 09:35:31 字數 934 閱讀 7416

hashset

hahmap

介面型別

set介面

map介面

新增方法

add()

put()

儲存內容

(key,value)

key判斷重複

通過key值計算hashcode 先用hashcode方法比較兩個物件的hash,若相等,通過equals()方法

同左速度

快慢,封裝了hashmap

陣列和鍊錶組合成的鍊錶雜湊結構。

其中以陣列儲存各元素entry(key,values,next),有相同的hash元素entry,則通過equlas()比較,在此元素上建立鍊錶,用next節點相連

無序,不允許重複,map介面有兩個基本的實現treemap和hashmap,treemap儲存了物件的排列次序,而hashmap不能;執行緒不安全。

實現集合set,無序,不允許重複,hashset的底層**原來是通過hashmap來儲存元素的,把值存在key值裡,而value值為object物件(null);實現是不同步的,執行緒不安全。

保證儲存元素的唯一性依賴於元素的equals和hashcode方法的實現

常用方法:

add();

contains();

size();//返回集合大小

remove(object o)//移出元素o

作用:用來在雜湊儲存結構中確定物件的儲存位址的。

通過hashcode()可能會得出一樣的值hashcode,這就需要equals()方法來判斷是否是需要的值。

比方:在乙個書庫裡,通過hashcode()找到某個書架,那裡有許多書,然後再通過equals()方法找到我們需要的書

當使用為自定義型別key時,需要重寫hashcode()和equals(),因為計算時是用預設引用來算,在這裡自定義型別物件被當成了兩個不同的物件。

HashMap和HashSet的區別

hashmap和hashset都是collection框架的一部分,它們讓我們能夠使用物件的集合。collection框架有自己的介面和實現,主要分為set介面,list介面和queue介面。它們有各自的特點,set的集合裡不允許物件有重複的值,list允許有重複,它對集合中的物件進行索引,queu...

hashset和hashmap的區別

map集合,就是有鍵值對的集合,屬性包含key,和value 1.關鍵字key是唯一不重複的 2.map是乙個有序的集合 hashset就像是把hashmap中value去掉 在jcf的所有具體類中,hashset是最簡單的乙個類,該類的例項代表一些唯一元素的普通集 1.無序 2.唯一 3.繼承ab...

hashMap 和 hashSet 的區別 ?

hashmap實現的是map介面 hashset實現的是set介面 hashmap是鍵對值儲存 hashset儲存的僅僅是值 hashmap使用put 存入資料 hashset使用add 存入資料 hashmap效率比較快,因為他是使用唯一的鍵來獲取物件 hashset相對於hashmap來說效率較...