Java的compareTo方法的实际应用是什么?

时间:2009-07-22 19:05:04

标签: java string compareto

在我正在学习的Java教科书中,它说它使用“词典排序”来返回一个整数。我理解它是如何工作的,但是在编程中使用的具体方法是什么?

7 个答案:

答案 0 :(得分:9)

所有内置排序方法在排序非基元时都使用它

答案 1 :(得分:3)

假设您想要对水进行分类,对象本身称为Glass

现在让我们说Glass可以有一个高度和一定量的水。

现在假设您要比较两个Glasses。你会怎么做?

我会通过覆盖compareTo方法来完成此操作。在那种方法中,我会说,如果两个玻璃具有相同的高度并且其中具有相同的水量,那么它们是相等的。显然你想要的逻辑大于或小于,但你明白了。

答案 2 :(得分:2)

如果您的自定义类最终会在需要排序的集合中结束,那么您可以在此处放置所有自定义逻辑,以确定对象与您对象相关的顺序。重新比较。

答案 3 :(得分:1)

例如,它可以对String进行排序。它将返回值< 0= 0> 0,具体取决于一个String是否按字母顺序排在另一个之后。

答案 4 :(得分:1)

compareTo()是表示Java中非基本类型的默认总排序的标准方法。

返回整数的优点是只需要调用一次就可以区分三种情况&lt;,==和&gt;。 (例如,使用方法equals()和greaterThan()的替代方法需要两次调用。)

它可以在需要总排序的任何地方使用。最重要的是:

  • 对于像TreeSet和TreeMap这样的已排序集合的实现(这些使用红黑树)。

  • 用于明确排序集合。

  • 在其他算法中,例如用户定义的数字类型的范围,例如有理数。

答案 5 :(得分:1)

compareTo比较值并返回一个int,它告诉值是否比较小于,等于或大于。

如果您的类对象具有自然顺序,请实现Comparable接口并定义此方法。所有具有自然排序的Java类都实现了这一点(String,Double,BigInteger,...)。

compareTo方法需要满足以下条件:

  • x.compareTo(y)是相反的符号 of y.compareTo(x)if x&amp;是的 不同
  • 如果x.compareTo(y)&gt; 0,和 y.compareTo(z)&gt; 0,然后 x.compareTo(z)&gt; 0
  • 与equals()的一致性是 推荐使用。

参考文献:
http://leepoint.net/notes-java/data/expressions/22compareobjects.html
http://www.javapractices.com/topic/TopicAction.do?Id=10

答案 6 :(得分:0)

最常见的用途是在排序字符串列表时作为比较函数。对compareTo的一次调用会告诉您一个字符串是在另一个字符串之前,在另一个字符串之后,还是与另一个字符串相同。