Java 类集框架: TreeMap 子类

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 .

猜你喜欢

转载自blog.csdn.net/Beyond_Nothing/article/details/113340415