可比类(Comparable Class)

2019-10-28 11:43发布

我一直在努力,现在学习了一段时间可比类,我知道正确的语法和如何在大多数情况下被使用。 如:

int result = ObjectA.compareTo(ObjectB); 

如果两个对象是相同的将返回值0; 如果对象A的负值小于对象B,或正值如果A大于B.

然而,当我去其实编写使用compareTo方法的程序,编译器是说,它无法找到compareTo方法。

我的问题是:我一定要直接从可比类继承为了使用compareTo方法? 只有我问原因,是因为你没有明确地继承像的toString方法或等于......因为一切从对象继承。 哪里的CompareTo归入?

Answer 1:

您需要实现Comparable界面:

public class MyClass implements Comparable<MyClass>

然后声明compareTo()方法:

public int compareTo(MyClass myClass){
    //compare and return result
} 


Answer 2:

Comparable是一个接口,而不是一个类。 所以,你会实现接口,而不是继承的类。 此外,实现接口意味着实施的compareTo方法自己在你的实现类。



Answer 3:

  1. 首先,它只会在情况下工作。 不知道你是比较比较对象或类本身,因为你的命名。 我会假设你正在使用的对象:)
  2. 该类你想用比较#compareTo必须实现Comparable 。 另一种方式实现这一目标而无需实现Comparable是提供您的排序方法的Comparator期待您的类。


Answer 4:

Comparable是一个接口让你不“继承”它( extends ),但其实现( implements )。

你可以写自己compareTo在你的类中的方法不指定Comparable接口,但随后的API中的方法不会知道,如果你的物体满足合同中Comparable强制实施。 所以,你将无法使用类似的方法Arrays.sort()等,其期望与那些执行对象的工作Comparable



Answer 5:

如果你希望你的类的对象A比较,可能是因为你喜欢来整理对象的列表,你需要做的类A实现Comparable接口。

一旦类A实现Comparable它必须实现并定义的行为compareTo ,基本上是想怎么类的两个对象A进行比较。

这是这种方法,你可以决定哪些类的字段A评估较小参加-对象的或greaterness。



文章来源: Comparable Class