在声明treeMap时创建匿名内部类(Comparator)并实现比较器方法(compare())。
package Conllection; import java.util.Comparator; import java.util.Map; import java.util.TreeMap; /** * TreeMap排序 * * @author zhaoy * */ public class Treemap1 { public static void main(String[] args) { Map<Integer, String> map = new TreeMap<>(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { if (o1 < o2) { return 1; } else if (o1 > o2) { return -1; } else { return 0; } } }); map.put(22, "二十二"); map.put(11, "十一"); map.put(66, "六十六"); map.put(33, "三十三"); System.out.println(map); } }类实现Comparable接口,重写compareTo()方法。
package Conllection; /** * User类 * * @author zhaoy * */ public class User implements Comparable<User> { int id; String name; int age; public User(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } @Override public int compareTo(User o) { if (id < o.id) { return 1; } else if (id > o.id) { return -1; } else { return 0; } } @Override public String toString() { return id + "--" + name + "--" + "age"; } } package Conllection; import java.util.Map; /** * TreeMap排序 * * @author zhaoy * */ public class TreeMap { public static void main(String[] args) { Map<User, String> map = new java.util.TreeMap<>(); User user1 = new User(1, "zhao", 12); User user2 = new User(30, "zhang", 3); User user3 = new User(13, "liu", 54); User user4 = new User(12, "li", 23); map.put(user1, "赵"); map.put(user2, "张"); map.put(user3, "刘"); map.put(user4, "李"); for (User user : map.keySet()) { System.out.println(user); } } }