如果是对自己创造的类进行排序,需要在创建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也可以因此去重。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐