`
itsoul
  • 浏览: 216187 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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,这样就没啥意义了。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics