Java中HashMap和Hashtable之間的區別

時間 2021-08-30 09:51:53

1樓:好程式設計師

hashmap和hashtable都實現了map介面,主要的區別有:

1、同步方面:hashtable的方法是同步的,hashmap未經同步,所以在多執行緒場合要手動同步hashmap。

2、賦值方面:hashtable不允許 null 值(key 和 value 都不可以),hashmap允許 null 值(key和value都可以)。

3、遍歷方式不同:hashtable比hashmap多一個elements方法。

4、動態陣列增加方式不同:hashtable中hash陣列預設大小是11,增加的方式是 old*2+1。hashmap中hash陣列的預設大小是16,而且一定是2的指數。

2樓:匿名使用者

map是一個陣列和連結串列的結合體,通常以鍵值對的形式hashmap 是hashtable 的輕量級實現(非執行緒安全的實現),他們都完成了map 介面,主要

區別在於hashmap 允許空(null)鍵值(key),由於非執行緒安全,效率上可能高於hashtable。

hashmap 允許將null 作為一個entry 的key 或者value,而hashtable 不允許。

hashmap和hashtable的區別

java中hashset和hashmap有什麼特點

妖魅少爺 hashset hashset實現了set介面,它不允許集合中有重複的值。當我們提到hashset時,第一件事情就是在將物件儲存在hashset之前,要先確保物件重寫equals 和hashcode 方法,這樣才能比較物件的值是否相等,以確保set中沒有儲存相等的物件。public boo...

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

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

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

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