大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java中HashSet和TreeSet的區(qū)別是什么

Java中HashSet和TreeSet的區(qū)別是什么

更新時(shí)間:2019-09-03 16:04:16 來源:動力節(jié)點(diǎn) 瀏覽4017次

今天動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編為大家分享“Java中HashSet和TreeSet的區(qū)別是什么”,希望希望通過此文能夠幫助到那些java零基礎(chǔ)學(xué)員,下面就隨小編一起看看Java中HashSet和TreeSet的區(qū)別是什么?

1、HashSet

  HashSet有以下特點(diǎn):

  不能保證元素的排列順序,順序有可能發(fā)生變化

  不是同步的

  集合元素可以是null,但只能放入一個(gè)null

  當(dāng)向HashSet集合中存入一個(gè)元素時(shí),HashSet會調(diào)用該對象的hashCode()方法來得到該對象的hashCode值,然后根據(jù) hashCode值來決定該對象在HashSet中存儲位置。

  簡單的說,HashSet集合判斷兩個(gè)元素相等的標(biāo)準(zhǔn)是兩個(gè)對象通過equals方法比較相等,并且兩個(gè)對象的hashCode()方法返回值相等

  注意,如果要把一個(gè)對象放入HashSet中,重寫該對象對應(yīng)類的equals方法,也應(yīng)該重寫其hashCode()方法。其規(guī)則是如果兩個(gè)對 象通過equals方法比較返回true時(shí),其hashCode也應(yīng)該相同。另外,對象中用作equals比較標(biāo)準(zhǔn)的屬性,都應(yīng)該用來計(jì)算hashCode的值。

  2、TreeSet類

  TreeSet是SortedSet接口的唯一實(shí)現(xiàn)類,TreeSet可以確保集合元素處于排序狀態(tài)。TreeSet支持兩種排序方式,自然排序 和定制排序,其中自然排序?yàn)槟J(rèn)的排序方式。向TreeSet中加入的應(yīng)該是同一個(gè)類的對象。

  TreeSet判斷兩個(gè)對象不相等的方式是兩個(gè)對象通過equals方法返回false,或者通過CompareTo方法比較沒有返回0

  自然排序

  自然排序使用要排序元素的CompareTo(Object obj)方法來比較元素之間大小關(guān)系,然后將元素按照升序排列。

  Java提供了一個(gè)Comparable接口,該接口里定義了一個(gè)compareTo(Object obj)方法,該方法返回一個(gè)整數(shù)值,實(shí)現(xiàn)了該接口的對象就可以比較大小。

  obj1.compareTo(obj2)方法如果返回0,則說明被比較的兩個(gè)對象相等,如果返回一個(gè)正數(shù),則表明obj1大于obj2,如果是 負(fù)數(shù),則表明obj1小于obj2。

  如果我們將兩個(gè)對象的equals方法總是返回true,則這兩個(gè)對象的compareTo方法返回應(yīng)該返回0

  定制排序

  自然排序是根據(jù)集合元素的大小,以升序排列,如果要定制排序,應(yīng)該使用Comparator接口,實(shí)現(xiàn) int compare(T o1,T o2)方法。

  3、最重要

  1.TreeSet 是二差樹實(shí)現(xiàn)的,Treeset中的數(shù)據(jù)是自動排好序的,不允許放入null值。

  2.HashSet 是哈希表實(shí)現(xiàn)的,HashSet中的數(shù)據(jù)是無序的,可以放入null,但只能放入一個(gè)null,兩者中的值都不能重復(fù),就如數(shù)據(jù)庫中唯一約束。

  3.HashSet要求放入的對象必須實(shí)現(xiàn)HashCode()方法,放入的對象,是以hashcode碼作為標(biāo)識的,而具有相同內(nèi)容的 String對象,hashcode是一樣,所以放入的內(nèi)容不能重復(fù)。但是同一個(gè)類的對象可以放入不同的實(shí)例 。

以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編介紹的“Java中HashSet和TreeSet的區(qū)別是什么”的內(nèi)容,希望能夠幫助到大家,如有任何疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

相關(guān)免費(fèi)視頻教程推薦

javase——HashSet特點(diǎn)視頻教程下載:http://www.dabaquan.cn/xiazai/2509.html

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产香蕉偷在线观看视频 | 狠狠色噜狠狠狠狠色综合久 | 国产香蕉一区二区在线观看 | 天天弄天天干 | 国产成人一区二区三区影院免费 | 亚洲欧美国产日产综合不卡 | 欧美成人免费一区在线播放 | 亚洲四虎 | 色就操 | 亚洲精品tv久久久久久久久久 | 在线观看欧洲成人免费视频 | 九九国产 | 国产成人综合久久精品红 | 国产四区 | 奇米网久久 | 国产目拍亚洲精品区一区 | 欧美胖老妇 | 欧美日本黄色 | 伊人网狠狠干 | 国内精品伊人久久久影视 | 四虎影视免费在线观看 | 精品国产综合区久久久久久 | 欧美日本视频一区 | 国产精品久久久久免费a∨ 国产精品久久久久免费视频 | 九九网站 | 精品牛牛影视久久精品 | 久久久久久久99精品免费 | 亚洲伊人色一综合网 | 91成年人| 性夜黄a爽爽免费视频国产 性夜影院爽黄a爽免费看网站 | 欧美视频在线不卡 | 一区二区在线 | 亚洲综合免费视频 | 免费观看日本a毛片 | 久久亚洲精品国产亚洲老地址 | 伊人首页| 日本人成免费大片 | 日韩欧美视频一区二区在线观看 | 久久精品国产亚洲 | 中文一区二区视频 | 一色屋精品亚洲香蕉网站 |