我们知道二叉树的二种排序方式,一种是实现comparable接口,复写其中的compareTo方法,- public int compareTo(Student s)
- {
- int num = new Integer(this.age).compareTo (new Integer(s.age));
- if(num == 0)
- return this.name.compareTo(s.name);
- return num;
- }
复制代码 另一种是搞一个构造器出来,实现comparator,复写其中的compare方法.- public int compare(Student s1,Student s2)
- {
- int num = s1.getName().compareTo(s2.getName());
- if(num == 0)
- {return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));}
- return num;
-
- }
复制代码 那么当二个排序方式都存在时,为什么会优先选择构造器里的方法进行呢?
从深层原理上解释一下。先谢谢,大家也可以讨论啊。 |