Java 類集框架: TreeMap 子類
阿新 • • 發佈:2021-01-29
技術標籤:Java演算法及JDK原始碼探究我的百寶箱日常小知識隨筆javahashmap
TreeMap 表示可以排序的Map子類, 它是按照key的內容進行排序的
範例: 觀察 TreeMap的使用
package com.beyond.nothing;
import java.util.Map;
import java.util.TreeMap;
public class test {
public static void main(String[] args) {
Map<Integer, String> map = new TreeMap <>();
map.put(1, "B");
map.put(0, "C");
map.put(2, "A");
System.out.println(map);
}
}
範例: 使用 TreeMap 輸出, 使用自定義 key
package com.beyond.nothing;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java. util.TreeMap;
class Person implements Comparable<Person>{
private String name;
public Person(String name) {
this.name = name;
}
@Override
public String toString() {
return "姓名: " + this.name;
}
@Override
public int compareTo(Person o) {
return this.name.compareTo(o.name);
}
}
public class test {
public static void main(String[] args) {
Map< Person, String> map = new TreeMap<>();
map.put(new Person("張三"), new String("zs"));
System.out.println(map.get(new Person("張三")));
}
}
結論: 有 Comparable 出現的地方, 判斷資料就依靠 compareTo() 方法完成, 就不需要使用 hashCode() 和 equals() 方法了, 這類操作一般也不參加. 一般也是 String, Integer, 而這兩個類也都是 Comparbale 介面的子類
總結:
- Collection 儲存資料的目的是為了輸出, Map 儲存資料的目的是為了根據 key 查詢, 找不到key 返回 null
- Map 使用 Iterator 輸出, 要理解 Map.Entry 的作用
- 一些類的設計原理, 在我們的開發之中大部分使用的還是 HashMap .