在我正在学习的Java教科书中,它说它使用“词典排序”来返回一个整数。我理解它是如何工作的,但是在编程中使用的具体方法是什么?
答案 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方法需要满足以下条件:
参考文献:
http://leepoint.net/notes-java/data/expressions/22compareobjects.html
http://www.javapractices.com/topic/TopicAction.do?Id=10
答案 6 :(得分:0)
最常见的用途是在排序字符串列表时作为比较函数。对compareTo
的一次调用会告诉您一个字符串是在另一个字符串之前,在另一个字符串之后,还是与另一个字符串相同。