黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

Java中treeset和hashset的區(qū)別

更新時(shí)間:2020-08-26 16:14:57 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2237次

HashSet

HashSet有以下特點(diǎn)

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

不是同步的

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

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

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

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

TreeSet類

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

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

自然排序

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

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

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

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

定制排序

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

最重要:

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

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

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

java treeset hashset

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java中treeset和hashset的區(qū)別”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 成人精品一区二区激情 | 中文国产日韩欧美视频 | 欧美一级看片免费观看视频在线 | 亚洲啪啪看看 | 成人网在线免费观看 | 狠狠干香蕉 | 中文国产成人精品久久一区 | 欧美在线成人午夜网站 | 久久88香港三级 | 96日本xxxxxxxxx18| 欧美日韩免费在线视频 | 亚洲午夜成激人情在线影院 | 国产精品国产三级国产无毒 | 在线观看亚洲成人 | 一区二区不卡不卡一卡 | 日本三级唾液浓厚在线观看 | 免费看成人毛片 | 欧美一级二级三级视频 | 最近中文字幕无免费视频 | 日韩理论| 亚洲人成网站在线观看播放 | 欧美视频高清在线观看 | 午夜免费观看体验区入口 | 欧美精品亚洲精品日韩经典 | 国产在线播放免费 | 国产成人亚洲影视在线 | 中文字幕亚洲视频 | 午夜免费影院 | 成年人黄色在线观看 | 午夜亚洲视频 | 免费特级黄毛片在线成人观看 | 亚洲影视在线观看 | 在线观看黄网站免费继续 | 亚洲成人福利在线观看 | 天堂中文在线网 | 丁香网五月 | 欧美精品白嫩bbwbbwbbw | 亚欧乱色一区二区三区 | 成年人视频在线免费观看 | 天天干天天操天天 | 日韩欧美综合视频 |