TreeMap是一个可以排序的Map子类,它是按照key的内容排序的。
import java.util.HashMap;
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(2,"C");
map.put(1,"A");
map.put(0,"B");
System.out.println(map);
}
}
它为什么会排序呢?
因为它是按照key排序的,这里的key是Integer类型的,Integer实现了Comparable接口,所有它的对象可以实现排序。
我们也可以给TreeMap传入一个比较器的对象,来实现排序操作:
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class Test {
public static void main(String[] args) {
Map<Integer, String> map = new TreeMap<>((o1, o2)->o1.compareTo(o2));
map.put(2,"C");
map.put(1,"A");
map.put(0,"B");
System.out.println(map);
}
}
因为Integer实现了Comparable接口,所以判断数据就依靠compareTo()完成,不再需要覆写equals()和hashCode()方法