大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java中treemap原理介紹

Java中treemap原理介紹

更新時間:2020-08-24 16:57:37 來源:動力節點 瀏覽5308次

一、TreeMap介紹

TreeMap是一個有序的key-value集合,它是通過紅黑樹實現的。

TreeMap繼承于AbstractMap,所以它是一個Map,即一個key-value集合。

TreeMap實現了NavigableMap接口,意味著它支持一系列的導航方法。比如返回有序的key集合。

TreeMap實現了Cloneable接口,意味著它能被克隆。

TreeMap實現了java.io.Serializable接口,意味著它支持序列化

TreeMap基于紅黑樹(Red-Black tree)實現。該映射根據其鍵的自然順序進行排序,或者根據創建映射時提供的Comparator進行排序,具體取決于使用的構造方法。

TreeMap的基本操作containsKey、get、put和remove的時間復雜度是log(n)。

另外,TreeMap是非同步的。它的iterator方法返回的迭代器是fail-fastl的。

java treemap原理

二、紅黑樹(Red Black Tree)

是一種自平衡二叉查找樹

(1)檢索效率O(log n)

(2)紅黑樹的五點規定:

a每個節點都只能是紅色或者黑色

b根節點是黑色

c每個葉節點(NIL節點,空節點)是黑色的。

d從每個葉子到根的所有路徑上不能有兩個連續的紅色節點。

e從任一節點到其每個葉子的所有路徑都包含相同數目的黑色節點。

三、TreeMap使用舉例

TreeMap默認按照key遞增排序

public?class?Main?{
?public?static?void?main(String[]?args)?{
?TreeMap?treeMap?=?new?TreeMap<>();
?TreeMap?treeMap1?=?new?TreeMap<>();
?treeMap.put(7,?"h");
?treeMap.put(8,?"g");
?treeMap.put(9,?"f");
?treeMap.put(10,?"e");
?treeMap.put(14,?"a");
?treeMap.put(1,?"w");
?treeMap.put(2,?"v");
?treeMap.put(3,?"u");
?treeMap.put(11,?"d");
?treeMap.put(12,?"c");
?treeMap.put(13,?"b");
?treeMap.put(4,?"k");
?treeMap.put(5,?"j");
?treeMap.put(6,?"i");
?System.out.println("----------------------*------------------------------");
?while?(treeMap.size()?!=?0)?{
?//treemap自動按照key進行遞增排序
?System.out.println(treeMap.firstEntry().getKey()?+?"?-?"?+?treeMap.firstEntry().getValue());
?treeMap1.put(treeMap.firstEntry().getValue(),?treeMap.firstEntry().getKey());
?treeMap.remove(treeMap.firstKey());
?}
?System.out.println("----------------------*------------------------------");
?while?(treeMap1.size()?!=?0)?{
?//treemap自動按照key進行遞增排序
?System.out.println(treeMap1.firstEntry().getKey()?+?"?-?"?+?treeMap1.firstEntry().getValue());
?treeMap1.remove(treeMap1.firstKey());
?}
?System.out.println("----------------------*------------------------------");
?}
}


得到結果:

----------------------*------------------------------
1?-?w
2?-?v
3?-?u
4?-?k
5?-?j
6?-?i
7?-?h
8?-?g
9?-?f
10?-?e
11?-?d
12?-?c
13?-?b
14?-?a
----------------------*------------------------------
a?-?14
b?-?13
c?-?12
d?-?11
e?-?10
f?-?9
g?-?8
h?-?7
i?-?6
j?-?5
k?-?4
u?-?3
v?-?2
w?-?1

以上就是動力節點java培訓機構的小編針對“Java中treemap原理介紹”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久爱99re | 午夜视频福利在线 | 国产欧美成人不卡视频 | 欧美性xxxxxx爱 | 久久婷婷是五月综合色狠狠 | 很黄很色的免费视频 | 日日操美女 | 亚洲欧洲精品视频在线观看 | 爱操在线视频 | 91资源在线视频 | 国产综合亚洲欧美日韩一区二区 | 国产精品日本一区二区在线看 | 亚洲国产一区二区a毛片日本 | 欧美精品videossex最新 | 成人午夜大片免费7777 | 亚洲天堂一区在线 | 国产v片成人影院在线观看 国产v视频 | 毛片一区二区三区 | 免费国产一区二区三区四区 | 久久精品日日躁夜夜躁欧美 | 亚洲视频在线免费播放 | 国产精品高清在线观看93 | 中文字幕在线观看免费 | 五月天色婷婷在线 | 精品精品国产高清a毛片牛牛 | 亚洲视频在线一区二区三区 | www.色午夜.com | 亚洲最大激情中文字幕 | 国产区免费 | 国产成人精品2021欧美日韩 | 香蕉在线网站 | 国产不卡在线观看视频 | 亚洲男人的天堂久久香蕉网 | 日本又黄又爽又色的免费视频 | 91精品国产品国语在线不卡 | 性欧洲精品videos' | 久久国产精品自线拍免费 | 亚洲视频手机在线 | 欧美精品香蕉在线观看网 | 欧美不卡精品中文字幕日韩 | 成人性生免费视频 |