下文筆者將從HashMap及HashSet的概念著手處理其不同之處,如下所示:
轉自:http://www.java265.com/JavaMianJing/202110/16347847421524.html
HashSet的簡介
HashSet實作Set介面
HashSet中的內容不允許有重復的值
當我們使用HashSet之前
需確保物件重寫equals()和hashCode()方法
然后比較物件的值是否相等
以確保set中沒有儲存相等的物件
當沒有重寫這兩個方法,將會使用這個方法的默認實作
//添加元素 public boolean add(object o);
HashMap的簡介
HashMap實作了Map介面
Map介面對鍵值對進行映射
Map中不允許重復的鍵key
Map介面有兩個基本的實作,HashMap和TreeMap
TreeMap保存了物件的排列次序,而HashMap則不能
HashMap允許鍵和值為null
HashMap是非synchronized的
但collection框架提供方法能保證HashMap synchronized
這樣多個執行緒同時訪問HashMap時,能保證只有一個執行緒更改Map
添加元素的方法 public Object put(Object Key,Object value)
根據以上的簡介說明,我們可以得出HashSet和HashMap的區別
| HashMap | HashSet |
| HashMap實作了Map介面 | HashSet實作了Set介面 |
| HashMap儲存鍵值對 | HashSet僅僅存盤物件 |
| 使用put()方法將元素放入map中 | 使用add()方法將元素放入set中 |
| HashMap中使用鍵物件來計算hashcode值 | HashSet使用成員物件來計算hashcode值,對于兩個物件來說hashcode可能相同,所以equals()方法用來判斷物件的相等性,如果兩個物件不同的話,那么回傳false |
| HashMap比較快,使用唯一的鍵來獲取物件 | HashSet較HashMap來說比較慢 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/329978.html
標籤:Java
上一篇:盤點一下Redis中常用的Java客戶端,或者咱們手寫一個?
下一篇:MySql一對多,查詢最新資料
