java day 13

Comparable和Comparetor

  • Comparable
    一個(gè)實(shí)現(xiàn)了Comparable接口的對(duì)象的實(shí)例可以被用于相同對(duì)象的不同實(shí)例階段渡讼。
$)6$}B`}PR55E(VP$K4M1WH.png

![


Uploading J[ZUL2`OR8_747$XI0Y~DDC_897851.png . . .]
  • Comparator
    一個(gè)實(shí)現(xiàn)了Comparator接口的對(duì)象能夠?qū)Ρ炔煌瑢?duì)象喂走。

降序排序


ZUL2`OR8_747$XI0Y~DDC.png

升序排序

![XYS$$%8N]](EY`076%DM%9B.png](http://upload-images.jianshu.io/upload_images/2457754-ed021dccdd92d001.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

%10O834)MKKV$R$U3YPJWVY.png

Set接口

  • Set不保存重復(fù)的元素坡贺。Set中最常被使用的是測(cè)試歸屬性,可以很容易的詢問(wèn)某個(gè)對(duì)象是否在某個(gè)Set中。Set具有與Collection完全一樣的接口,因此沒(méi)有任何額外的功能。實(shí)際上Set就是Collection馋评,只是行為不同。
    實(shí)現(xiàn)了Set接口的主要有HashSet刺啦、TreeSet留特、LinkedHashSet這幾個(gè)共同點(diǎn)就是每個(gè)相同的項(xiàng)只保存一份。他們也有不同點(diǎn):
    1.HashSet
     HashSet使用的是相當(dāng)復(fù)雜的方式來(lái)存儲(chǔ)元素的,使用HashSet能夠最快的獲取集合中的元素蜕青,效率非常高(以空間換時(shí)間)苟蹈。會(huì)根據(jù)hashcode和equals來(lái)判斷是否是同一個(gè)對(duì)象,如果hashcode一樣右核,并且equals返回true慧脱,則是同一個(gè)對(duì)象,不能重復(fù)存放贺喝。用hashCode()和equals()方法來(lái)區(qū)分同一對(duì)象后菱鸥,就不能存放同一對(duì)象了。如果注釋這兩個(gè)方法躏鱼,則所有對(duì)象視為不同對(duì)象氮采,都可以存放。
    HashSet的特點(diǎn):
    (1)不能保證元素的排列順序染苛,順序有可能發(fā)生變化
    (2)不是同步的
    (3) 集合元素可以是null,但只能放入一個(gè)null
    2.TreeSet
      TreeSet也不能存放重復(fù)對(duì)象鹊漠,但是TreeSet會(huì)自動(dòng)排序,如果存放的對(duì)象不能排序則會(huì)報(bào)錯(cuò)茶行,所以存放的對(duì)象必須指定排序規(guī)則躯概。排序規(guī)則包括自然排序和客戶排序。
      自然排序:TreeSet要添加哪個(gè)對(duì)象就在哪個(gè)對(duì)象類上面實(shí)現(xiàn)java.lang.Comparable接口畔师,并且重寫comparaTo()方法楞陷,返回0則表示是同一個(gè)對(duì)象,否則為不同對(duì)象茉唉。
      客戶排序:建立一個(gè)第三方類并實(shí)現(xiàn)java.util.Comparator接口。并重寫方法结执。定義集合形式為TreeSet ts = new TreeSet(new 第三方類());
    3.LinkedHashSet
      LinkedHashSet按照插入順序保存對(duì)象度陆,同時(shí)還保存了HashSet的查詢速度。LinkedHashSet集合是根據(jù)元素的hashCode值來(lái)決定元素的存儲(chǔ)位置献幔,但是它同時(shí)使用鏈表維護(hù)元素的次序懂傀。這樣使得元素看起 來(lái)像是以插入順序保存的,也就是說(shuō)蜡感,當(dāng)遍歷該集合時(shí)候蹬蚁,LinkedHashSet將會(huì)以元素的添加順序訪問(wèn)集合的元素。
    LinkedHashSet在迭代訪問(wèn)Set中的全部元素時(shí)郑兴,性能比HashSet好犀斋,但是插入時(shí)性能稍微遜色于HashSet。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末情连,一起剝皮案震驚了整個(gè)濱河市叽粹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖虫几,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锤灿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡辆脸,警方通過(guò)查閱死者的電腦和手機(jī)但校,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)啡氢,“玉大人状囱,你說(shuō)我怎么就攤上這事】罩矗” “怎么了浪箭?”我有些...
    開(kāi)封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)辨绊。 經(jīng)常有香客問(wèn)我奶栖,道長(zhǎng),這世上最難降的妖魔是什么门坷? 我笑而不...
    開(kāi)封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任宣鄙,我火速辦了婚禮,結(jié)果婚禮上默蚌,老公的妹妹穿的比我還像新娘冻晤。我一直安慰自己,他們只是感情好绸吸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布鼻弧。 她就那樣靜靜地躺著,像睡著了一般锦茁。 火紅的嫁衣襯著肌膚如雪攘轩。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天码俩,我揣著相機(jī)與錄音度帮,去河邊找鬼。 笑死稿存,一個(gè)胖子當(dāng)著我的面吹牛笨篷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓣履,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼率翅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了拂苹?” 一聲冷哼從身側(cè)響起安聘,我...
    開(kāi)封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤痰洒,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后浴韭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體丘喻,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年念颈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泉粉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡榴芳,死狀恐怖嗡靡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情窟感,我是刑警寧澤讨彼,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站柿祈,受9級(jí)特大地震影響哈误,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜躏嚎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一蜜自、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卢佣,春花似錦重荠、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至嘹叫,卻和暖如春荞彼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背待笑。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抓谴,地道東北人暮蹂。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像癌压,于是被迫代替她去往敵國(guó)和親仰泻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 上一篇文章介紹了Set集合的通用知識(shí)滩届。Set集合中包含了三個(gè)比較重要的實(shí)現(xiàn)類:HashSet集侯、TreeSet和En...
    Ruheng閱讀 15,639評(píng)論 3 57
  • Java集合框架 Java平臺(tái)提供了一個(gè)全新的集合框架。“集合框架”主要由一組用來(lái)操作對(duì)象的接口組成棠枉。不同接口描述...
    小石38閱讀 360評(píng)論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法浓体,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法辈讶,繼承相關(guān)的語(yǔ)法命浴,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,623評(píng)論 18 399
  • 3.3 集合 一方面贱除, 面向?qū)ο笳Z(yǔ)言對(duì)事物的體現(xiàn)都是以對(duì)象的形式生闲,為了方便對(duì)多個(gè)對(duì)象的操作,就要對(duì)對(duì)象進(jìn)行存儲(chǔ)月幌。另...
    閆子揚(yáng)閱讀 728評(píng)論 0 1
  • 從三月份找實(shí)習(xí)到現(xiàn)在碍讯,面了一些公司,掛了不少扯躺,但最終還是拿到小米捉兴、百度、阿里缅帘、京東轴术、新浪、CVTE钦无、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,240評(píng)論 11 349