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,這樣就沒啥意義了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章