HashSet和HashMap的區(qū)別
什么是HashSet?
HashSet實(shí)現(xiàn)了Set接口,它不允許集合中有重復(fù)的值,當(dāng)我們提到HashSet時(shí),第一件事情就是在將對(duì)象存儲(chǔ)在HashSet之前,要先確保對(duì)象重寫equals()和hashCode()方法,這樣才能比較對(duì)象的值是否相等,以確保set中沒(méi)有儲(chǔ)存相等的對(duì)象。如果我們沒(méi)有重寫這兩個(gè)方法,將會(huì)使用這個(gè)方法的默認(rèn)實(shí)現(xiàn)。。
publicbooleanadd(Objecto)方法用來(lái)在Set中添加元素,當(dāng)元素值重復(fù)時(shí)則會(huì)立即返回false,如果成功添加的話會(huì)返回true。
什么是HashMap?
HashMap實(shí)現(xiàn)了Map接口,Map接口對(duì)鍵值對(duì)進(jìn)行映射。Map中不允許重復(fù)的鍵。Map接口有兩個(gè)基本的實(shí)現(xiàn),HashMap和TreeMap。TreeMap保存了對(duì)象的排列次序,而HashMap則不能。HashMap允許鍵和值為null。HashMap是非synchronized的,但collection框架提供方法能保證HashMapsynchronized,這樣多個(gè)線程同時(shí)訪問(wèn)HashMap時(shí),能保證只有一個(gè)線程更改Map。
publicObjectput(ObjectKey,Objectvalue)方法用來(lái)將元素添加到map中。
HashSet和HashMap的區(qū)別
