java中hashset和hashmap有什麼特點

時間 2021-07-05 16:49:40

1樓:妖魅少爺

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中。

2樓:妮妮

什麼是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樓:匿名使用者

set是線性結構,set中的值不能重複,hashset是set的hash實現,hashset中值不能重複是用hashmap的key來實現的。

map是鍵值對對映,可以空鍵空值。hashmap是map介面的hash實現,key的唯一性是通過key值hash值的唯一來確定,value值是則是連結串列結構。

他們的共同點都是hash演算法實現的唯一性,他們都不能持有基本型別,只能持有物件

Java中HashMap和Hashtable之間的區別

好程式設計師 hashmap和hashtable都實現了map介面,主要的區別有 1 同步方面 hashtable的方法是同步的,hashmap未經同步,所以在多執行緒場合要手動同步hashmap。2 賦值方面 hashtable不允許 null 值 key 和 value 都不可以 hashmap...

java中,到底overwrite和override有什麼區別

個人認為overwrite只是有些人把重寫翻譯回英文的時候翻譯錯了,重寫就是override 重寫是指子類整合父類的方法但是子類方法內部的具體操作和父類的不同。過載是指一個類中有兩個名稱相同但是引數個數或者引數型別不同的方法,這兩個方法屬於c過載。 重寫的適用範圍是具有繼承關係的兩個類,子類可以重寫...

java佇列和堆疊的區別,JAVA中佇列和棧的區別

陝西it優就業 佇列 queue 是限定只能在表的一端進行插入和在另一端進行刪除操作的線性表 棧 stack 是限定只能在表的一端進行插入和刪除操作的線性表。區別如下 一 規則不同 1.佇列 先進先出 first in first out fifo2.棧 先進後出 first in last out...