Java集合---HashMap與HashSet比較
HashSet 和 HashMap 的比較
HashMap 和 HashSet 都是 collection 框架的一部分,它們讓我們能夠使用物件的集合。collection 框架有自己的介面和實現,主要分為 Set 介面,List 介面和 Queue 介面。它們有各自的特點,Set 的集合裡不允許物件有重複的值,List 允許有重複,它對集合中的物件進行索引,Queue 的工作原理是 FCFS 演算法(First Come, First Serve)。
首先讓我們來看看什麼是 HashMap 和 HashSet,然後再來比較它們之間的分別。
什麼是 HashSet
HashSet 實現了 Set 介面,它不允許集合中有重複的值,當我們提到
publicboolean add(Object o)方法用來在 Set 中新增元素,當元素值重複時則會立即返回 false,如果成功新增的話會返回 true。
什麼是 HashMap
HashMap 實現了 Map 介面,Map 介面對鍵值對進行對映。Map 中不允許重複的鍵。Map 介面有兩個基本的實現,HashMap 和 TreeMap。
publicObject put(Object Key,Object value)方法用來將元素新增到 map 中。
HashSet 和 HashMap 的區別
HashMap | HashSet |
HashMap實現了Map介面 | HashSet實現了Set介面 |
HashMap | HashSet僅僅儲存物件 |
使用put()方法將元素放入map中 | 使用add()方法將元素放入set中 |
HashMap中使用鍵物件來計算hashcode值 | HashSet使用成員物件來計算hashcode值,對於兩個物件來說hashcode可能相同,所以equals()方法用來判斷物件的相等性,如果兩個物件不同的話,那麼返回false |
HashMap比較快,因為是使用唯一的鍵來獲取物件 | HashSet較HashMap來說比較慢 |