TreeMap key中存实体的排序问题

TreeMap作为键值对存储,当键中放的是整数和字符串没什么问题,当键为实体时,需要实现Comparator接口的compare方法,并且在这个实体类里重写的equals、hashCode方法,如声明如下TreeMap:

Map<Model, List<Model>> orderList = Collections.synchronizedMap(new TreeMap<Model, List<Model>>();
//Collections.synchronizedMap这里这么做是为了保证线程安全

在Model实体类里放的equals方法:
public int hashCode(){
//你自己的hashCode算法;
}
public int compare(Object obj){

//compare实现
return 0;
}
public boolean equals(Object obj){
//equals算法
return false;
}

以上得到hashCode的算法和equals的算法最好是比较真实的算法, 可以根据该model里的某个具体的属性hashCode来比较,最好是不要返回该类的hashCode,这样就没啥意义了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章