问题标签 [compareto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1385 浏览

java - PriorityQueue 删除的意外行为:为什么不使用 compareTo?

我正在尝试使用优先级队列,但 remove() 不起作用:我的代码:

和类实现:

我认为输出最终输出应该是 2,因为我要删除添加的“1”。compareTo() 应该由优先级队列 remove() 使用,但他的情况似乎并非如此。我做错了什么?我知道 pq.remove(a) 会起作用,但是我的代码也应该起作用

0 投票
6 回答
3855 浏览

java - Java - compareTo 和运算符

如果我有一个Person实现的类Comparable(例如,与 相比personA.heightpersonB.height,是否可以使用

作为替代品

这样做有什么问题还是我需要重载运算符?

0 投票
4 回答
14018 浏览

java - 使用 Comparable 接口时 compareTo() 方法不会覆盖默认方法

我正在尝试通过编写自己的方法并使用可比较的实现来覆盖 java 中的默认 compareTo() 方法,但似乎 java 仍在使用默认方法。

我正在尝试按从 .dat 文件中获得的长度对字符串数组进行排序,但是它一直按字母顺序对其进行排序。如果有人能告诉我我做错了什么,我将不胜感激,因为我无法弄清楚为什么这不起作用。

谢谢

这是包含主要方法的类

0 投票
8 回答
156141 浏览

java - compareTo 与原语 -> 整数 / int

是不是更好写

或者

我认为第二个更好,应该更快,内存优化更多。但他们不是平等的吗?

0 投票
3 回答
1707 浏览

.net - 为泛型类实现 Icomparable 接口

我不知道如何为泛型类实现IComparable接口方法CompareTo

我有一个名为的类BindingProperty<T>,用于创建一个List<BindingProperty<intOrString>>绑定到一个DataGrid. 问题是我无法执行排序操作,因为这个类IComparable没有实现接口。BindingProperty<T>比较的结果将取决于“ BindingProperty<T>Value”类型为 T 的类的数据成员“Value”。当我单击 DataGrid 的列标题时,我得到一个方法未实现的异常。CompareTo()

我需要帮助来实现这个接口。我应该使用IComparable<T>吗?如果是,我该怎么做?

提前感谢沙克蒂

0 投票
1 回答
270 浏览

c# - 使用 CompareTo 比较日期时间的冲突预订

我正在制作一个预订系统,用户可以在其中互相预约。我需要做的是确保会议不会在时间上发生冲突。

例如:会议 1 是从 13:00 到 14:00。会议 2 是从 13:30 到 14:30。

这些会议发生冲突,因此不应进行预订。

现在,当我尝试这样做时,我没有得到想要的结果,有时它认为不应该进行预订,而实际上应该进行预订,反之亦然。

这是我的代码:

主要问题似乎在于((Clash1 > 0) || (Clash2 < 0))if 语句,因为何时应该进行预订,第一个 if 语句设置为 true (因为它应该)但是然后这个 if 语句将其设置为 false。

如何正确执行这些检查以确保时间不会冲突?

0 投票
3 回答
27013 浏览

java - 抽象的 compareTo 方法没有被覆盖

编译下面的代码时,出现以下错误:

PersonalInformation 不是抽象的,不会覆盖 Comparable 中的抽象方法 compareTo(Object)

我认为这意味着我的compareTo方法有问题。但一切似乎都很好。有人有建议吗?

0 投票
1 回答
2202 浏览

java - compareTo 方法不会编译

我的班级标题:

我的 compareTo 方法:

但 Eclipse 给了我错误:

GraphEdge 类型的方法 compareTo(GraphEdge) 必须覆盖超类方法

为什么?我试着做 Comparable,与

但这也失败了。

0 投票
6 回答
202 浏览

java - Java:可以将日期作为字符串进行比较吗

从外部服务中,我得到Date+Time字段格式为String' 的对象2012-03-07 12:12:23.547,我需要比较这些字段以获得对象的正确顺序。我很清楚我可以Date通过例如 SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS") 创建对象并比较两者Date来实现这一点,但我的问题是我是否可以依靠正确的排序顺序如果我将它们作为字符串进行比较,例如String.compareTo(String)?一些轻度测试给我的印象是它有效,但我想知道是否有人知道它不会给我正确结果的任何情况?此外,比较String's Vs 解析成 Dates 进行比较是否有任何性能考虑、优点或缺点?

0 投票
5 回答
2936 浏览

java - 自动检查equals、hashCode和compareTo一致性的技术?

我很清楚合同需要确保与 .hashCode一致equals并且equalscompareTo. 然而,这在实践中经常被违反。是否有任何工具、技术或库可以自动测试这种一致性?

不幸的是,我怀疑答案是否定的,但是能够对这种可以使用库调用或框架的东西进行单元测试而不需要手动编写自定义测试来为每个案例都很重要。

如果不清楚我所说的一致性是什么意思,hashCodeequals指的是以下内容:

如果两个对象根据 equals(Object) 方法相等,则对两个对象中的每一个调用 hashCode 方法必须产生相同的整数结果。

对于equalscompareTo我指的是以下内容:

当且仅当 e1.compareTo(e2) == 0 对于 C 类的每个 e1 和 e2 具有与 e1.equals(e2) 相同的布尔值时,C 类的自然排序被称为与 equals 一致。