猿问

什么时候一个类应该是可比的和/或比较的?

什么时候一个类应该是可比的和/或比较的?

我见过实现这两种功能的类。可比比较器..这是什么意思?我为什么要用一个而不是另一个?



烙印99
浏览 420回答 3
3回答

繁星coding

以下文字来自比较器与可比可比一个可比较的对象能够将自己与另一个对象进行比较。类本身必须实现java.lang.Comparable接口,以便能够比较其实例。比较器比较器对象能够比较两个不同的对象。这个类不是比较它的实例,而是比较其他类的实例。此比较器类必须实现java.util.Comparator接口。

隔江千里

实施Comparable意思是“我可以把自己和另一个物体比较一下。“当有一个自然的默认比较时,这通常是有用的。实施Comparator意思是“我可以比较另外两个物体。“当有多种方法比较一种类型的两个实例时,这通常是有用的-例如,您可以按年龄、姓名等对人进行比较。

哔哔one

可以让类实现自己的比较:在里面同一班(这往往是一种优势)有可能只有一个实现(所以如果你想要两个不同的案例,你就不能用这个)相比之下,比较器是一种外部比较:它通常在一个唯一的实例中(无论是在同一个类中还是在另一个地方)。你,你们列出每个实现的名称用你想要处理的方式您可以提供比较器无法控制的类。实现是即使第一个对象为空,也是可用的。在这两种实现中,您仍然可以选择你想要被比较的东西..使用泛型,您可以声明它,并让它在编译时检查.这提高了安全性,但确定适当的值也是一个挑战。作为指导原则,我通常使用最通用的类或接口来比较该对象,在我设想的所有用例中.不过,定义并不十分精确!Comparable<Object>允许您在编译时在所有代码中使用它(如果需要,这是好的,如果不是,则使用不好的代码);您的实现必须处理对象,并按需要进行强制转换,但要以健壮的方式进行转换。Comparable<Itself>恰恰相反是非常严格的。有趣的是,当子类本身变成子类时,子类也必须是可比较的,并且在这方面必须是健壮的(否则会破坏Liskov原则,并给出运行时错误)。
随时随地看视频慕课网APP

相关分类

Java
我要回答