HashMap 和 HashSet的差別。本站提示廣大學習愛好者:(HashMap 和 HashSet的差別)文章只能為提供參考,不一定能成為您想要的結果。以下是HashMap 和 HashSet的差別正文
HashMap和HashSet的差別是Java面試中最常被問到的成績。假如沒有觸及到Collection框架和多線程的面試,可以說是不完全。而Collection框架的成績不觸及到HashSet和HashMap,也能夠說是不完全。HashMap和HashSet都是collection框架的一部門,它們讓我們可以或許應用對象的聚集。collection框架有本身的接口和完成,重要分為Set接口,List接口和Queue接口。它們有各自的特色,Set的聚集裡不許可對象有反復的值,List許可有反復,它對聚集中的對象停止索引,Queue的任務道理是FCFS算法(First Come, First Serve)。
起首讓我們來看看甚麼是HashMap和HashSet,然後再來比擬它們之間的分離。
甚麼是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來講比擬慢
假如你還曉得其它的甚麼分歧點,請留言。
原文鏈接: Javarevisited 翻譯: ImportNew.com - 唐小娟
譯文鏈接: http://www.importnew.com/6931.html