概述:
(1)TreeMap是基于二叉树的Map接口实现。
(2)这里有序指的是TreeMap中的键是有序的,我们可以知道Map中的键可以转化一个Set集合,所以实现TreeMap排序的方法是实现,TreeMap中键对象的排序;
(3)排序方法当然也有两种:
第一种:TreeMap(Comparator<? super K> comparator) 传入一个比较器;
第二种:将 存储的键对象实现Comparable接口;
这里常用的是第一中方法:
这里使用上一节的比较器MyComparator();
public class HashMapDemo {
public static void main(String[] args) {
TreeMap<Person,Integer> map = new TreeMap<>(new MyComparator());
map.put(new Person(1,"zhangsan"),1);
map.put(new Person(2,"lisi"),2);
map.put(new Person(3,"lisi"),3);
Set<Map.Entry<Person,Integer>> entry = map.entrySet();
for(Map.Entry<Person,Integer > temp : entry){
System.out.println(temp.getKey() + ": " + temp.getValue());
}
}
}
输出结果为:
[ id: 2,name: lisi]: 2
[ id: 3,name: lisi]: 3
[ id: 1,name: zhangsan]: 1
网友评论