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中,到底overwrite和override有什麼區別

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

java中math方法舉例,Java中Math方法舉例

math 類包含基本的數字操作,如指數 對數 平方根和三角函式。與 strictmath 類的某些數值方法不同,並不是 math 類的所有等效函式的實現都定義為返回逐位相同的結果。這一寬限允許在不要求嚴格可重複性的地方實現更好的效能。預設情況下,很多 math 方法僅呼叫 strictmath 中的...

在java中為什麼要使用類圖,在java中為什麼要使用類圖

其實也不是一定要使用類圖的,使用類圖就是為了讓你清楚的理解類之間的關係,比如a類繼承了b類,同時又實現了c介面,等等這樣的關係用類圖來表示的話一目瞭然。使用類圖還有一個好處,就是在軟體工程中講的一個軟體開發的 詳細設計 階段,用類圖表示出系統的結構後好多工具支援自動生成 就是從類圖直接生成 的基本結...