TreeSet、TreeMap作为Key的class没有实现Comparable接口,那么,必须在创建实例时同时指定一个自定义排序算法
·
如果是对自己创造的类进行排序,需要在创建TreeMap或者TreeSet实例时,实现Comparable接口,并指定一个排序算法。一般是大于返回正数1,相等为0,小于返回-1
//根据Message类中sequence字段进行排序
Set<Message> set = new TreeSet<>(new Comparator<Message>(){
@Override
public int compara(Message s1,Message s2){
if(s1.sequence == s2.sequence)
return 0;
return s1.sequence>s2.sequence ? 1:-1;
}
});
其中TreeMap和TreeSet不需要复写equals()和hashcode()两个方法,就可以进行比较,set也可以因此去重。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)