首页 > 技术文章 > Comparable接口compareTo方法理解

roud 2021-08-22 15:52 原文

TreeSet可以将我们存进去的数据进行排序,如果是自然排序默认存入的对象必须实现Comparable接口重写compareTo(Object o)方法,compareTo方法用于书写排序规则:
  1. 返回值为int,其中返回值大于0会交换两数位置。为了更好地区别,用返回1表示交换位置,返回0表示两数相等不交换位置,返回-1表示不交换位置。
  2. 理解this对象和o所指向对象,可以把Object o引用向下转型如
    Student other=(Student) o; if(this.val>other.val){ return 1; }

(相邻前面一个和后面一个)此时可以理解为当前的对象的val属性值如果大于其后一个对象即other的val属性值时交换两对象位置。
this 和other为相邻两个对象,this指向当前的对象,other指向当前后面一个对象!!!
this.val<other.val other.val>this.val都表示前面的对象的val值小于后面的对象的val值

  1. 必须写好规则才能存入对象!!!

推荐阅读