如果我java.lang.Comparable
为一个类实现,是否仍然需要重写该equals()
方法?还是会Comparable
为之工作equals
?
如果答案为 否
,那么如果出现差异怎么办?比方说,我的方式长期两个对象作为内享有平等equals()
的方法是从我的方式长期在同一类的两个对象为内平等不同compareTo()
的Comparable
。
而且,如果我实施了Comparable
,是否还必须重写equals()
?
虽然建议(并且非常明智)a.compareTo(b) == 0
暗示它a.equals(b)
(反之亦然),但这 不是
必需的。Comparable
旨在在对一系列对象执行排序时使用,而equals()
仅测试直接相等性。
该链接提供了一些有关compareTo
正确实施的良好信息。
问题内容: 为什么写: 问题答案: 实现的对象是。 您要在其中覆盖的方法应将对象作为参数,而将其强制转换为。您的实现应描述如何与另一个进行比较。 要真正进行排序,您可能还需要制作工具,然后将实际逻辑复制粘贴到其中。
问题内容: 我正在使用PriorityQueue结构来获取用户设置的一些字段,这是代码的一部分: 当我仅添加一个“学生”时没有问题,但是当我尝试捕获第二个“学生”时,应用程序将引发此异常 有人可以向我解释问题出在哪里/为什么?我花了很多时间在Web上寻找解决方案,但找不到,我在这里需要一些帮助… 问题答案: 如果不提供custom ,则对它持有的对象使用自然顺序。也就是说,它希望您的对象彼此之间。
问题内容: List myclassList = (List ) rs.get(); 我不明白为什么这段代码会产生这个: MyClass没有实现Comparable。我只想使用Set来过滤List的唯一元素,因为我的List包含不必要的重复项。 问题答案: 是否或类似的东西? 如果没有,那就是为什么。 为此,您必须制作元素或提供一个。否则将无法运行,因为它将不知道如何对元素进行排序。 请记住,,因
我正在尝试创建类似于创建图的教程,但遇到一个错误:线程“main”java.lang.ClassCastException中的。
如果Equals方法返回false,即返回false。所以这些值应该相加两次,但只相加一次。谁能解释一下。我在谷歌上搜索并清除了关于HashCode和equals contract的概念,但在这里我失败了。