bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

TreeMap簡單教程-創新互聯

TreeMap簡介

成都創新互聯公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站制作、網站設計、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的蚌埠網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

在Map集合框架中,除了HashMap以外,TreeMap也是常用到的集合對象之一。

與HashMap相比,TreeMap是一個能比較元素大小的Map集合,會對傳入的key進行了大小排序。其中,可以使用元素的自然順序,也可以使用集合中自定義的比較器來進行排序;

不同于HashMap的哈希映射,TreeMap實現了紅黑樹的結構,形成了一顆二叉樹。

TreeMap繼承于AbstractMap,實現了Map, Cloneable, NavigableMap, Serializable接口。

(1)TreeMap 繼承于AbstractMap,而AbstractMap實現了Map接口,并實現了Map接口中定義的方法,減少了其子類繼承的復雜度;

(2)TreeMap 實現了Map接口,成為Map框架中的一員,可以包含著key-value形式的元素;

(3)TreeMap 實現了NavigableMap接口,意味著擁有了更強的元素搜索能力;

(4)TreeMap 實現了Cloneable接口,實現了clone()方法,可以被克隆;

(5)TreeMap 實現了Java.io.Serializable接口,支持序列化操作;

TreeMap具有如下特點:

不允許出現重復的key;

可以插入null鍵,null值;

可以對元素進行排序;

無序集合(插入和遍歷順序不一致);

TreeMap基本操作

public class TreeMapTest {

public static void main(String[] agrs){

//創建TreeMap對象:

TreeMap treeMap = new TreeMap();

System.out.println("初始化后,TreeMap元素個數為:" + treeMap.size());

//新增元素:

treeMap.put("hello",1);

treeMap.put("world",2);

treeMap.put("my",3);

treeMap.put("name",4);

treeMap.put("is",5);

treeMap.put("huangqiuping",6);

treeMap.put("i",6);

treeMap.put("am",6);

treeMap.put("a",6);

treeMap.put("developer",6);

System.out.println("添加元素后,TreeMap元素個數為:" + treeMap.size());

//遍歷元素:

Set> entrySet = treeMap.entrySet();

for(Map.Entry entry : entrySet){

String key = entry.getKey();

Integer value = entry.getValue();

System.out.println("TreeMap元素的key:"+key+",value:"+value);

}

//獲取所有的key:

Set keySet = treeMap.keySet();

for(String strKey:keySet){

System.out.println("TreeMap集合中的key:"+strKey);

}

//獲取所有的value:

Collection valueList = treeMap.values();

for(Integer intValue:valueList){

System.out.println("TreeMap集合中的value:" + intValue);

}

//獲取元素:

//獲取集合內元素key為"huangqiuping"的值

Integer getValue = treeMap.get("huangqiuping");

//獲取集合內第一個元素

String firstKey = treeMap.firstKey();

//獲取集合內最后一個元素

String lastKey =treeMap.lastKey();

//獲取集合內的key小于"huangqiuping"的key

String lowerKey =treeMap.lowerKey("huangqiuping");

//獲取集合內的key大于等于"huangqiuping"的key

String ceilingKey =treeMap.ceilingKey("huangqiuping");

//獲取集合的key從"a"到"huangqiuping"的元素

SortedMap sortedMap =treeMap.subMap("a","my");

//刪除元素:

//刪除集合中key為"huangqiuping"的元素

Integer removeValue = treeMap.remove("huangqiuping");

//清空集合元素:

treeMap.clear();

//判斷方法:

//判斷集合是否為空

boolean isEmpty = treeMap.isEmpty();

//判斷集合的key中是否包含"huangqiuping"

boolean isContain = treeMap.containsKey("huangqiuping");

}

}

TreeMap排序

(1)使用元素自然排序

在使用自然順序排序時候,需要區分兩種情況:一種是Jdk定義的對象,一種是自己定義的對象;

public class SortedTest implements Comparable {

private int age;

public SortedTest(int age){

this.age = age;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

//自定義對象,實現compareTo(T o)方法:

public int compareTo(SortedTest sortedTest) {

int num = this.age - sortedTest.getAge();

//為0時候,兩者相同:

if(num==0){

return 0;

//大于0時,傳入的參數小:

}else if(num>0){

return 1;

//小于0時,傳入的參數大:

}else{

return -1;

}

}

}

public class TreeMapTest {

public static void main(String[] agrs){

//自然順序比較

naturalSort();

}

//自然排序順序:

public static void naturalSort(){

//第一種情況:Integer對象

TreeMap treeMapFirst = new TreeMap();

treeMapFirst.put(1,"huangqiuping");

treeMapFirst.put(6,"huangqiuping");

treeMapFirst.put(3,"huangqiuping");

treeMapFirst.put(10,"huangqiuping");

treeMapFirst.put(7,"huangqiuping");

treeMapFirst.put(13,"huangqiuping");

System.out.println(treeMapFirst.toString());

//第二種情況:SortedTest對象

TreeMap treeMapSecond = new TreeMap();

treeMapSecond.put(new SortedTest(10),"huangqiuping");

treeMapSecond.put(new SortedTest(1),"huangqiuping");

treeMapSecond.put(new SortedTest(13),"huangqiuping");

treeMapSecond.put(new SortedTest(4),"huangqiuping");

treeMapSecond.put(new SortedTest(0),"huangqiuping");

treeMapSecond.put(new SortedTest(9),"huangqiuping");

System.out.println(treeMapSecond.toString());

}

}鄭州看婦科哪家醫院好 http://www.hnzzkd.com/

在自然順序比較中,需要讓被比較的元素實現Comparable接口,否則在向集合里添加元素時報:"java.lang.ClassCastException: com.huangqiuping.collection.map.SortedTest cannot be cast to java.lang.Comparable"異常;

這是因為在調用put()方法時,會將傳入的元素轉化成Comparable類型對象,所以當你傳入的元素沒有實現Comparable接口時,就無法轉換,遍會報錯;

(2)使用自定義比較器排序

使用自定義比較器排序,需要在創建TreeMap對象時,將自定義比較器對象傳入到TreeMap構造方法中;

自定義比較器對象,需要實現Comparator接口,并實現比較方法compare(To1,To2);

使用自定義比較器排序的話,被比較的對象無需再實現Comparable接口了;

public class SortedTest {

private int age;

public SortedTest(int age){

this.age = age;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

public class SortedTestComparator implements Comparator {

//自定義比較器:實現compare(To1,To2)方法:

public int compare(SortedTest sortedTest1, SortedTest sortedTest2) {

int num = sortedTest1.getAge() - sortedTest2.getAge();

if(num==0){//為0時候,兩者相同:

return 0;

}else if(num>0){//大于0時,后面的參數小:

return 1;

}else{//小于0時,前面的參數小:

return -1;

}

}

}

public class TreeMapTest {

public static void main(String[] agrs){

//自定義順序比較

customSort();

}

//自定義排序順序:

public static void customSort(){

TreeMap treeMap = new TreeMap(new SortedTestComparator());

treeMap.put(new SortedTest(10),"hello");

treeMap.put(new SortedTest(21),"my");

treeMap.put(new SortedTest(15),"name");

treeMap.put(new SortedTest(2),"is");

treeMap.put(new SortedTest(1),"huangqiuping");

treeMap.put(new SortedTest(7),"world");

System.out.println(treeMap.toString());

}

}

創新互聯www.cdcxhl.cn,專業提供香港、美國云服務器,動態BGP最優骨干路由自動選擇,持續穩定高效的網絡助力業務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節活動現已開啟,新人活動云服務器買多久送多久。

網頁名稱:TreeMap簡單教程-創新互聯
標題來源:http://vcdvsql.cn/article42/ddhjec.html

成都網站建設公司_創新互聯,為您提供商城網站網站設計服務器托管網站改版云服務器用戶體驗

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司