如果我为一个类实现了 java.lang.Comparable 接口,我是否仍然需要重写 equals() 方法?或者说 Comparable 也可以用于判断相等吗? 如果答案是 否 ,那么如果出现一些差异怎么办?比如说我在 equals() 方法中将两个对象称为相等的方式与我在 Compa...
我想定义一个实现通用Comparable接口的类。而在我的类中,我还定义了一个泛型元素T。为了实现该接口,我将比较委托给了T。以下是我的代码: public class Item<T extends Comparable<T>> implements Comparab...
我正在尝试按照long类型对一个简单对象列表进行排序,但以下代码不起作用,因为其中一个较小的数字会被推到列表顶部。因此,我要寻找一种直接按照实际long数值排序的方法。 当前对象的实现大致如下。在使用此类时,我调用Collections.sort(trees);public class Tr...
我可以使用它按员工ID排序,但我不确定是否可以比较字符串。 我收到了一个错误,指出字符串没有定义运算符。public int compareTo(Emp i) { if (this.getName() == ((Emp ) i).getName()) ...
我试图在Java中实现一个排序列表作为简单的练习。为了使其通用化,我有一个add(Comparable obj),这样我就可以使用任何实现了Comparable接口的类。 但是,在代码中的任何地方使用obj.compareTo(...)时,编译器都会给出"unchecked call to ...
最近我在SO聊天室看到了一个讨论,但没有得出明确的结论,所以我最终在那里提问。 这是出于历史原因还是为了与其他语言保持一致性呢?当查看各种语言的compareTo签名时,它返回一个int。 为什么它不返回枚举类型呢?例如在C#中,我们可以这样做: enum CompareResult {...
为什么 Collections.sort(List<T>) 的签名是这样的: public static <T extends Comparable<? super T>> void sort(List<T> list) 而不是: pu...
如何使用“<”或“>”使Java中的两个对象可比较 例如: MyObject<String> obj1= new MyObject<String>(“blablabla”, 25); MyObject<String> obj2= new MyO...
我有一个ArrayList,里面装着这些:class TransitionState { Position positionA; Position positionB; int counter; public boolean equals (Object ...
让我们创建一个名为Person的类。人有姓名和身高。 equals()和hashCode()方法只考虑姓名。Person是可比较的(或者我们为其实现了比较器,不管哪种方式),按照身高进行比较。 很可能会出现两个不同人的身高相同的情况,但例如TreeSet的行为是compareTo()==0表示...