1. 程式人生 > 其它 >Java 類集框架: TreeMap 子類

Java 類集框架: TreeMap 子類

技術標籤: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 介面的子類

總結:

  1. Collection 儲存資料的目的是為了輸出, Map 儲存資料的目的是為了根據 key 查詢, 找不到key 返回 null
  2. Map 使用 Iterator 輸出, 要理解 Map.Entry 的作用
  3. 一些類的設計原理, 在我們的開發之中大部分使用的還是 HashMap .