導航:首頁 > 編程語言 > java中的hashset

java中的hashset

發布時間:2023-01-26 04:42:23

1. java中的HASHSET和HASHMap的底層實現是怎樣的大致講一下。

HASHSET:底層是將你加入其中的對象進行HASH排列後在放的時候,對比你放入的對象在其中是否有相同的對象存在,如果存在就不放入,反之放入。
HASHMAP:底層是將你加入其中的對象進行HASH排列後在放的時候,將key和對應的value發在一起,可以隨時用key找到value,所以其中如果你讓如相同的key但value不同時,後者value會替換前者。
所以,如果你不希望存相同的值是,用HASHSET,你希望能很方便的用key找到value時,用HASHMAP.

2. java中hashset和hashmap 有什麼特點。

什麼是HashSet
HashSet實現了Set介面,它不允許集合中有重復的值,當我們提到HashSet時,第一件事情就是在將對象存儲在HashSet之前,要先確保對象重寫equals()和hashCode()方法,這樣才能比較對象的值是否相等,以確保set中沒有儲存相等的對象。如果我們沒有重寫這兩個方法,將會使用這個方法的默認實現。
public boolean add(Object o)方法用來在Set中添加元素,當元素值重復時則會立即返回false,如果成功添加的話會返回true。
什麼是HashMap
HashMap實現了Map介面,Map介面對鍵值對進行映射。Map中不允許重復的鍵。Map介面有兩個基本的實現,HashMap和TreeMap。TreeMap保存了對象的排列次序,而HashMap則不能。HashMap允許鍵和值為null。HashMap是非synchronized的,但collection框架提供方法能保證HashMap synchronized,這樣多個線程同時訪問HashMap時,能保證只有一個線程更改Map。
public Object put(Object Key,Object value)方法用來將元素添加到map中。
你可以閱讀這篇文章看看HashMap的工作原理,以及這篇文章看看HashMap和HashTable的區別。
HashSet和HashMap的區別
*HashMap* *HashSet*
HashMap實現了Map介面 HashSet實現了Set介面
HashMap儲存鍵值對 HashSet僅僅存儲對象
使用put()方法將元素放入map中 使用add()方法將元素放入set中
HashMap中使用鍵對象來計算hashcode值 HashSet使用成員對象來計算hashcode值,對於兩個對象來說hashcode可能相同,所以equals()方法用來判斷對象的相等性,如果兩個對象不同的話,那麼返回false
HashMap比較快,因為是使用唯一的鍵來獲取對象 HashSet較HashMap來說比較慢

3. Java HashSet的用法

HashSet
set
=
new
HashSet();
set.add("a");
set.add("b");
set.add("c");
set.add("d");
Iterator
it
=
set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
=======================================================
上面就是遍歷沖hashset中取出每個元素的方法,由於hashset本來就是無序的,所以你如果想通過下標取出元素的話,最好還是用list,你以什麼順序把元素放進去,就可以什麼順序把元素取出來

閱讀全文

與java中的hashset相關的資料

熱點內容
反編譯怎麼解決字串長度 瀏覽:279
農行app怎麼凍結賬號 瀏覽:759
mt反編譯的軟體打不開 瀏覽:518
安卓日上免稅APP如何安裝 瀏覽:583
怎麼買星空加密狗 瀏覽:19
北京程序員薪酬 瀏覽:133
華為榮耀暢玩8c升級方舟編譯器 瀏覽:412
手機怎麼把照片填入文件夾 瀏覽:305
php圖片輪換 瀏覽:929
科二學車app軟體哪個好 瀏覽:645
用aj踩東西的解壓視頻 瀏覽:382
將python編譯成手機app 瀏覽:475
程序員社招國企好進么 瀏覽:696
php路徑寫法 瀏覽:432
為什麼有些網頁安卓打不開 瀏覽:220
如何滲透獲取伺服器資料庫 瀏覽:778
ios是怎麼解析app的 瀏覽:256
按揭車怎麼貸款app 瀏覽:477
linux卸載nodejs 瀏覽:128
find方法php 瀏覽:302