成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Java? 教程(SortedMap接口)

JessYanCoding / 3256人閱讀

SortedMap接口

SortedMap是一個(gè)按升序維護(hù)其條目的Map,根據(jù)鍵的自然順序或在創(chuàng)建SortedMap時(shí)提供的Comparator進(jìn)行排序,SortedMap接口提供常規(guī)Map操作和以下操作的操作:

范圍視圖 — 對(duì)排序后的map執(zhí)行任意范圍操作

端點(diǎn) — 返回已排序map中的第一個(gè)或最后一個(gè)鍵

比較器訪問(wèn) — 返回用于排序mapComparator(如果有的話)

下面的接口是SortedSet的Map模擬。

public interface SortedMap extends Map{
    Comparator comparator();
    SortedMap subMap(K fromKey, K toKey);
    SortedMap headMap(K toKey);
    SortedMap tailMap(K fromKey);
    K firstKey();
    K lastKey();
}
Map操作

SortedMap繼承自Map的操作在已排序map和常規(guī)的map上的行為相同,但有兩個(gè)例外:

iterator操作在已排序map的任何Collection視圖上返回的Iterator按順序遍歷集合。

Collection視圖的toArray操作返回的數(shù)組按順序包含鍵、值或條目。

雖然接口不能保證這一點(diǎn),但是Collection視圖在所有Java平臺(tái)的SortedMap實(shí)現(xiàn)中的toString方法按順序返回一個(gè)包含視圖所有元素的字符串。

標(biāo)準(zhǔn)構(gòu)造函數(shù)

按照慣例,所有通用Map實(shí)現(xiàn)都提供一個(gè)接受Map的標(biāo)準(zhǔn)轉(zhuǎn)換構(gòu)造函數(shù),SortedMap實(shí)現(xiàn)也不例外。在TreeMap中,這個(gè)構(gòu)造函數(shù)創(chuàng)建一個(gè)實(shí)例,該實(shí)例根據(jù)鍵的自然順序?qū)ζ錀l目進(jìn)行排序,這可能是個(gè)錯(cuò)誤。最好動(dòng)態(tài)檢查指定的Map實(shí)例是否是SortedMap,如果是,則根據(jù)相同的標(biāo)準(zhǔn)(比較器或自然順序)對(duì)新map排序。因?yàn)?b>TreeMap采用了它所采用的方法,所以它還提供了一個(gè)構(gòu)造函數(shù),該構(gòu)造函數(shù)接受SortedMap并返回一個(gè)新的TreeMap,其中包含與給定SortedMap相同的映射,按照相同的標(biāo)準(zhǔn)排序。注意,決定是否優(yōu)先調(diào)用SortedMap構(gòu)造函數(shù)而不是普通map構(gòu)造函數(shù)的是參數(shù)的編譯時(shí)類(lèi)型,而不是運(yùn)行時(shí)類(lèi)型。

SortedMap實(shí)現(xiàn)還按照約定提供了一個(gè)構(gòu)造函數(shù),該構(gòu)造函數(shù)接受Comparator并返回一個(gè)根據(jù)指定的Comparator排序的空map,如果將null傳遞給這個(gè)構(gòu)造函數(shù),它將返回一個(gè)Map,根據(jù)鍵的自然順序?qū)τ成溥M(jìn)行排序。

相比SortedSet

因?yàn)檫@個(gè)接口是SortedSet的精確Map模擬,所以SortedSet接口部分中的風(fēng)格和代碼示例都適用于SortedMap,只做了很少的修改。

上一篇:SortedSet接口

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75538.html

相關(guān)文章

  • Java? 教程(集合接口

    集合接口 核心集合接口封裝了不同類(lèi)型的集合,如下圖所示,這些接口允許獨(dú)立于其表示的細(xì)節(jié)來(lái)操縱集合,核心集合接口是Java集合框架的基礎(chǔ),如下圖所示,核心集合接口形成層次結(jié)構(gòu)。 showImg(https://segmentfault.com/img/bVbntJW?w=402&h=146); Set是一種特殊的Collection,SortedSet是一種特殊的Set,依此類(lèi)推,另請(qǐng)注意,層次結(jié)構(gòu)...

    elisa.yang 評(píng)論0 收藏0
  • Java TreeMap 源碼解析

    摘要:源碼剖析由于紅黑樹(shù)的操作我這里不說(shuō)了,所以這里基本上也就沒(méi)什么源碼可以講了,因?yàn)檫@里面重要的算法都是,這里的是指,他們是算法導(dǎo)論的作者,也就是說(shuō)里面算法都是參照算法導(dǎo)論的偽代碼。因?yàn)榧t黑樹(shù)是平衡的二叉搜索樹(shù),所以其包含操作的時(shí)間復(fù)雜度都為。 本文章首發(fā)于個(gè)人博客,鑒于sf博客樣式具有賞心悅目的美感,遂發(fā)表于此,供大家學(xué)習(xí)、批評(píng)。本文還在不斷更新中,最新版可移至個(gè)人博客。? 繼上篇文章...

    rubyshen 評(píng)論0 收藏0
  • Java 集合Hashtable源碼深入解析

    摘要:分別獲取正序反序的鍵集。是用來(lái)實(shí)現(xiàn)機(jī)制的第部分源碼解析基于為了更了解的原理,下面對(duì)源碼代碼作出分析。實(shí)現(xiàn)了迭代器和枚舉兩個(gè)接口獲取的迭代器若的實(shí)際大小為則返回空迭代器對(duì)象否則,返回正常的的對(duì)象。 概要 前面,我們已經(jīng)系統(tǒng)的對(duì)List進(jìn)行了學(xué)習(xí)。接下來(lái),我們先學(xué)習(xí)Map,然后再學(xué)習(xí)Set;因?yàn)镾et的實(shí)現(xiàn)類(lèi)都是基于Map來(lái)實(shí)現(xiàn)的(如,HashSet是通過(guò)HashMap實(shí)現(xiàn)的,TreeSe...

    Turbo 評(píng)論0 收藏0
  • Java? 教程(目錄)

    Java? 教程 Java教程是為JDK 8編寫(xiě)的,本頁(yè)面中描述的示例和實(shí)踐沒(méi)有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語(yǔ)言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書(shū)籍的形式提供,如Java教程,第六版,前往Amazon.com購(gòu)買(mǎi)。 入門(mén) 介紹Java技術(shù)和安裝Java開(kāi)發(fā)軟件并使用...

    lifesimple 評(píng)論0 收藏0
  • TreeMap 源碼分析

    摘要:當(dāng)往中放入新的鍵值對(duì)后,可能會(huì)破壞紅黑樹(shù)的性質(zhì)。修復(fù)操作要重新使紅黑樹(shù)恢復(fù)平衡,修復(fù)操作的源碼分析如下方法分析如下上面對(duì)部分代碼邏輯就行了分析,通過(guò)配圖的形式解析了每段代碼邏輯所處理的情況。四總結(jié)本文可以看做是本人紅黑樹(shù)詳細(xì)分析一文的延續(xù)。 一、簡(jiǎn)介 TreeMap最早出現(xiàn)在JDK 1.2中,是 Java 集合框架中比較重要一個(gè)的實(shí)現(xiàn)。TreeMap 底層基于紅黑樹(shù)實(shí)現(xiàn),可保證在log...

    chaos_G 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<