SortedMap接口
SortedMap是一個按升序維護其條目的Map,根據鍵的自然順序或在創建SortedMap時提供的Comparator進行排序,SortedMap接口提供常規Map操作和以下操作的操作:
范圍視圖 — 對排序后的map執行任意范圍操作
端點 — 返回已排序map中的第一個或最后一個鍵
比較器訪問 — 返回用于排序map的Comparator(如果有的話)
下面的接口是SortedSet的Map模擬。
public interface SortedMapMap操作extends Map { Comparator super K> comparator(); SortedMap subMap(K fromKey, K toKey); SortedMap headMap(K toKey); SortedMap tailMap(K fromKey); K firstKey(); K lastKey(); }
SortedMap繼承自Map的操作在已排序map和常規的map上的行為相同,但有兩個例外:
iterator操作在已排序map的任何Collection視圖上返回的Iterator按順序遍歷集合。
Collection視圖的toArray操作返回的數組按順序包含鍵、值或條目。
雖然接口不能保證這一點,但是Collection視圖在所有Java平臺的SortedMap實現中的toString方法按順序返回一個包含視圖所有元素的字符串。
標準構造函數按照慣例,所有通用Map實現都提供一個接受Map的標準轉換構造函數,SortedMap實現也不例外。在TreeMap中,這個構造函數創建一個實例,該實例根據鍵的自然順序對其條目進行排序,這可能是個錯誤。最好動態檢查指定的Map實例是否是SortedMap,如果是,則根據相同的標準(比較器或自然順序)對新map排序。因為TreeMap采用了它所采用的方法,所以它還提供了一個構造函數,該構造函數接受SortedMap并返回一個新的TreeMap,其中包含與給定SortedMap相同的映射,按照相同的標準排序。注意,決定是否優先調用SortedMap構造函數而不是普通map構造函數的是參數的編譯時類型,而不是運行時類型。
SortedMap實現還按照約定提供了一個構造函數,該構造函數接受Comparator并返回一個根據指定的Comparator排序的空map,如果將null傳遞給這個構造函數,它將返回一個Map,根據鍵的自然順序對映射進行排序。
相比SortedSet因為這個接口是SortedSet的精確Map模擬,所以SortedSet接口部分中的風格和代碼示例都適用于SortedMap,只做了很少的修改。
上一篇:SortedSet接口文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75538.html
集合接口 核心集合接口封裝了不同類型的集合,如下圖所示,這些接口允許獨立于其表示的細節來操縱集合,核心集合接口是Java集合框架的基礎,如下圖所示,核心集合接口形成層次結構。 showImg(https://segmentfault.com/img/bVbntJW?w=402&h=146); Set是一種特殊的Collection,SortedSet是一種特殊的Set,依此類推,另請注意,層次結構...
摘要:源碼剖析由于紅黑樹的操作我這里不說了,所以這里基本上也就沒什么源碼可以講了,因為這里面重要的算法都是,這里的是指,他們是算法導論的作者,也就是說里面算法都是參照算法導論的偽代碼。因為紅黑樹是平衡的二叉搜索樹,所以其包含操作的時間復雜度都為。 本文章首發于個人博客,鑒于sf博客樣式具有賞心悅目的美感,遂發表于此,供大家學習、批評。本文還在不斷更新中,最新版可移至個人博客。? 繼上篇文章...
摘要:分別獲取正序反序的鍵集。是用來實現機制的第部分源碼解析基于為了更了解的原理,下面對源碼代碼作出分析。實現了迭代器和枚舉兩個接口獲取的迭代器若的實際大小為則返回空迭代器對象否則,返回正常的的對象。 概要 前面,我們已經系統的對List進行了學習。接下來,我們先學習Map,然后再學習Set;因為Set的實現類都是基于Map來實現的(如,HashSet是通過HashMap實現的,TreeSe...
Java? 教程 Java教程是為JDK 8編寫的,本頁面中描述的示例和實踐沒有利用在后續版本中引入的改進。 Java教程是希望使用Java編程語言創建應用程序的程序員的實用指南,其中包括數百個完整的工作示例和數十個課程,相關課程組被組織成教程。 覆蓋基礎知識的路徑 這些教程以書籍的形式提供,如Java教程,第六版,前往Amazon.com購買。 入門 介紹Java技術和安裝Java開發軟件并使用...
摘要:當往中放入新的鍵值對后,可能會破壞紅黑樹的性質。修復操作要重新使紅黑樹恢復平衡,修復操作的源碼分析如下方法分析如下上面對部分代碼邏輯就行了分析,通過配圖的形式解析了每段代碼邏輯所處理的情況。四總結本文可以看做是本人紅黑樹詳細分析一文的延續。 一、簡介 TreeMap最早出現在JDK 1.2中,是 Java 集合框架中比較重要一個的實現。TreeMap 底層基于紅黑樹實現,可保證在log...
閱讀 3073·2021-11-24 10:34
閱讀 3330·2021-11-22 13:53
閱讀 2636·2021-11-22 12:03
閱讀 3603·2021-09-26 09:47
閱讀 3013·2021-09-23 11:21
閱讀 4802·2021-09-22 15:08
閱讀 3297·2021-07-23 10:59
閱讀 1262·2019-08-29 18:31