程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> HashMap 和 HashSet的差別

HashMap 和 HashSet的差別

編輯:關於JAVA

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved