Java API —— TreeMap类

1、TreeMap类概述
        键是红黑树结构,可以保证键的排序和唯一性
2、TreeMap案例
        TreeMap<String,String>
        TreeMap<Student,String>
 
例子1:
package treemapdemos;
import java.util.Set;
import java.util.TreeMap;
/**
 * Created by gao on 15-12-22.
 */
/*
 * TreeMap:是基于红黑树的Map接口的实现。
 * HashMap<String,String>
 * 键:String
 * 值:String
 */
public class TreeMapDemo01 {
    public static void main(String[] args) {
        // 创建集合对象
        TreeMap<String, String> tm = new TreeMap<String, String>();
        // 创建元素并添加元素
        tm.put("hello", "你好");
        tm.put("world", "世界");
        tm.put("java", "爪哇");
        tm.put("world", "世界2");
        tm.put("javaee", "爪哇EE");
        // 遍历集合
        Set<String> set = tm.keySet();
        for (String key : set) {
            String value = tm.get(key);
            System.out.println(key + "---" + value);
        }
    }
}

输出结果:(唯一和自然排序)

hello---你好
java---爪哇
javaee---爪哇EE
world---世界2
 
例子2:
package treemapdemos;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeMap;
/**
 * Created by gao on 15-12-22.
 */
/*
 * TreeMap<Student,String>
 * 键:Student
 * 值:String
 */
public class TreeMapDemo02 {
    public static void main(String[] args) {
        // 创建集合对象
        TreeMap<Student, String> tm = new TreeMap<Student, String>(new Comparator<Student>() {
            @Override
            public int compare(Student s1, Student s2) {
                int num = s1.getAge() - s2.getAge();
                int num2 = num == 0 ? s1.getName().compareTo(s2.getName()) : num;
                return num2;
            }
        });
        // 创建学生对象
        Student s1 = new Student("潘安", 30);
        Student s2 = new Student("柳下惠", 35);
        Student s3 = new Student("唐伯虎", 33);
        Student s4 = new Student("燕青", 32);
        Student s5 = new Student("唐伯虎", 33);
        // 存储元素
        tm.put(s1, "宋朝");
        tm.put(s2, "元朝");
        tm.put(s3, "明朝");
        tm.put(s4, "清朝");
        tm.put(s5, "汉朝");
        // 遍历
        Set<Student> set = tm.keySet();
        for (Student key : set) {
            String value = tm.get(key);
            System.out.println(key.getName() + "---" + key.getAge() + "---" + value);
        }
    }
}
输出结果:(唯一和排序)
潘安---30---宋朝
燕青---32---清朝
唐伯虎---33---汉朝
柳下惠---35---元朝
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/yangyquin/p/5066149.html