3

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

4

7 回答 7

9

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

于 2009-07-22T19:06:48.647 回答
3

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

现在让我们说一个Glass罐子有一个高度和它所容纳的水量。

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

我会通过覆盖该compareTo方法来做到这一点。在那种方法中,我会说如果两个杯子的高度相同并且里面的水量相同,那么它们是相等的。显然,您需要大于或小于的逻辑,但您明白了。

于 2009-07-22T19:09:59.530 回答
2

如果您有一个自定义类最终会出现在需要排序的集合中,那么您将在此处放置所有自定义逻辑,以确定对象相对于您要比较的对象的顺序.

于 2009-07-22T19:08:47.033 回答
1

compareTo() 是在 Java 中表示对非原始类型的默认总排序的标准方法。

返回整数的好处是只需要调用一次就可以区分<、==和>这三种情况。(例如使用方法 equals() 和 greaterThan() 的替代方法需要两次调用。)

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

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

  • 用于显式排序集合。

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

于 2009-07-22T20:26:56.877 回答
1

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

于 2009-07-22T19:08:13.480 回答
1

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

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

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

  • 如果 x 和 y 不同,x.compareTo(y) 是 y.compareTo(x) 的相反符号
  • 如果 x.compareTo(y) > 0,并且 y.compareTo(z) > 0,则 x.compareTo(z) > 0。
  • 建议与 equals() 保持一致。

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

于 2009-07-22T23:56:18.997 回答
0

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

于 2009-07-22T19:08:37.020 回答