CompareTO(Object o)方法的重写及其用于排序的原理 Published on Jul 4, 2023 in 随笔 with 0 comment CompareTo()方法是java.lang.Comparable接口的一个抽象方法。 其方法的主要作用是根据依据比较 对象的大小,比如Integer型,比较的是数值的大小,String形等, 调用这个方法的对象比 形参对象大的话返回 1 比形参小的话 返回 -1 等于 形参的话 返回 0 根据返回的值就可以确定两个对象的大小 进而进行排列。 注:当在重写CompareTo()方法比较String 等非数值类型属性的大小时。我们可以直接借用String 方法中的 CompareTo()方法来比较。 向TreeSet中添加元素时,首先按照compareTo的方法进行比较,一旦返回0,虽然仅是两个对象的此属性 值相同,但是程序扔会认为这个对象是相同的,进而后一个对象进不来。 如: ```java public int compareTo(Object o){ if(o instanceof Person){ Person p = (Person)o; return this.name.compareTo(p.name);//这里就借用String中的CompareTo()方法来比较String类型的 //的大小 } return 0; } ``` 所以我们要比较另一个属性的大小 ```java public int compareTo(Object o) { if(o instanceof Person) { Person p = (Person)o; int i = this.name.compareTo(p.name); if(i == 0) { return this.age.compareTo(p.age); }else { return i; } }return 0; } } ``` 本文由 admin 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。