compareTo返回值是否存在问题?

时间:2014-08-06 10:38:14

标签: java

虽然compareTo方法的契约只指定了返回值的符号,但为什么几乎所有方法实现只返回-1,0,1?

3 个答案:

答案 0 :(得分:2)

  

...为什么几乎所有方法实现都只返回-1,0,1?

我不能代表其他程序员,但我通常会这样做,因为在大多数情况下这样做更简单,更方便。最重要的是,正确

我想你正在考虑这样做:

  public int compareTo (MyClass other) {
      return this.intField - other.intField;
  }

当心。这段代码巧妙地错了。请参阅此问答:Java Integer compareTo() - why use comparison vs. subtraction?

答案 1 :(得分:0)

如果您已阅读合同,则已阅读原因。

无论如何我会链接它:http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html#compareTo(T)

答案 2 :(得分:0)

比较两个值时,请说出ab。只有3种可能性。

a等于b a小于b a大于b

那么你使用compateTo()只需检查上述情况。那么0意味着有平等。 -1表示a小于b1表示a大于b

如果ab是对象,则考虑参考值。

相关问题