- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- Java源碼解析之SortedMap和NavigableMap
由于亂序的數據對查找不利,例如無(wú)法使用二分法等降低算法的時(shí)間復雜度,如果數據在插入時(shí)就排好序,查找的性能聚會(huì )提升很多。sortedMap接口就是為這種有序的數據服務(wù)的。
sortedMap接口需要數據的key支持Comparable,或者可以被指定的Comparator接受。sortedMap主要提供了以下方法:
// 返回排序數據所用的Comparator Comparator<? super K> comparator(); // 返回在[fromKey, toKey)之間的數據 SortedMap<K,V> subMap(K fromKey, K toKey); // 返回從第一個(gè)元素到toKey之間的數據 SortedMap<K,V> headMap(K toKey); // 返回從fromKey到末尾之間的數據 SortedMap<K,V> tailMap(K fromKey); //返回第一個(gè)數據的key K firstKey(); //返回最后一個(gè)數據的key K lastKey();
SortedMap主要提供了獲取子集,以及獲取最大值(最后一個(gè)值)和最小值(第一個(gè)值)的方法。但這僅僅是排序數據能提供的便利的一小部分,在接下來(lái)分析的NavigableMap中,我們還會(huì )看到更多的功能。
SortedMap提供了獲取最大值與最小值的方法,但對于一個(gè)已經(jīng)排序的數據集,除了最大值與最小值之外,我們可以對任何一個(gè)元素,找到比它小的值和比它大的值,還可以按照按照原有的順序倒序排序等。NavigableMap就為我們提供了這些功能。
我們來(lái)看看NavigableMap主要有哪些方法
// 找到第一個(gè)比指定的key小的值 Map.Entry<K,V> lowerEntry(K key); // 找到第一個(gè)比指定的key小的key K lowerKey(K key); // 找到第一個(gè)小于或等于指定key的值 Map.Entry<K,V> floorEntry(K key); // 找到第一個(gè)小于或等于指定key的key K floorKey(K key); // 找到第一個(gè)大于或等于指定key的值 Map.Entry<K,V> ceilingEntry(K key); K ceilingKey(K key); // 找到第一個(gè)大于指定key的值 Map.Entry<K,V> higherEntry(K key); K higherKey(K key); // 獲取最小值 Map.Entry<K,V> firstEntry(); // 獲取最大值 Map.Entry<K,V> lastEntry(); // 刪除最小的元素 Map.Entry<K,V> pollFirstEntry(); // 刪除最大的元素 Map.Entry<K,V> pollLastEntry(); //返回一個(gè)倒序的Map NavigableMap<K,V> descendingMap(); // 返回一個(gè)Navigable的key的集合,NavigableSet和NavigableMap類(lèi)似 NavigableSet<K> navigableKeySet(); // 對上述集合倒序 NavigableSet<K> descendingKeySet();
到此這篇關(guān)于Java源碼解析之SortedMap和NavigableMap的文章就介紹到這了,更多相關(guān)Java SortedMap和NavigableMap內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站