在TreeMap中,如果key值是java中的基本类型,TreeMap会自身帮我们排序,如果是自定义类型,如定义一个Student类作为key值,我们如果不告知排序规则的话,运行就会报错。所以,如何实现自定义排序呢?解决方案有2个,二者选一即可:
在Student类中实现Comparable,重写compareTo方法
在构造函数中new Comparator,匿名内部类,重写compare 方法
TreeMap<String,List<ZTreeDTO>> retultMap = new TreeMap<String,List<ZTreeDTO>>(new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
o1 = getTypeByProjectName(o1);
o2 = getTypeByProjectName(o2);
return (o2);
}
});