为什么比较器声明等于?

2024-04-18

比较器接口有自己的equals()方法。任何班级都会得到equals()默认情况下通过 Object 类。需要具备什么equals()接口内的方法?


Comparator细化合同Object.equals:它必须满足以下规定的约束Object.equals 然后还有一些.

此外,仅当指定对象也是比较器并且它施加与此比较器相同的顺序时,此方法才能返回 true。因此,comp1.equals(comp2)暗示sgn(comp1.compare(o1, o2))==sgn(comp2.compare(o1, o2))对于每个对象引用o1 and o2.

声明一个equals inside Comparator允许您以 javadoc 的形式记录这一点。

请注意,API 的文档也可作为合同,因此这里不仅仅是装饰性的。这是其他代码和您的代码可以依赖的显式约束。

在类似的情况下,如果您的方法不太成熟,它也可以用作记录意图。 IE。,Interface.method无论其超级接口如何演变,都应该存在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么比较器声明等于? 的相关文章

随机推荐

  • 从.c调用MASM32过程

    我现在正在使用 Visual Studio 我需要构建一个 win32 应用程序并需要从 C 函数调用过程 但我总是收到构建错误 错误 3 错误 LNK1120 1 个未解析的外部 我已经通过一个过程将所有内容简化为一个简单的主函数和简单的
  • CodeIgniter - 删除文件,路径问题

    我的根目录中有 3 个文件夹 application system 和 uploads 在 application controllers mycontroller php 我有这行代码 delete files uploads file
  • 在 PowerShell 中显示 Unicode

    我想要实现的目标应该相当简单 尽管 PowerShell 试图让它变得困难 我想显示文件的完整路径 其中一些文件的名称中包含阿拉伯语 中文 日语和俄语字符 我总是得到一些无法解读的输出 如下所示 控制台中看到的输出正被另一个脚本使用 输出包
  • 如何在 Chrome DevTools 中查看元素上触发的事件?

    我在库的页面上有一个可自定义的表单元素 我想看看当我与它交互时会触发哪些 javascript 事件 因为我试图找出要使用的事件处理程序 如何使用 Chrome Web Developer 来做到这一点 您可以使用监控事件 http www
  • 如何告诉 JavaFX WebView 忽略“use strict”指令?

    我正在尝试使用以下代码将 mozilla 查看器集成到 JavaFx WebView 中 import javafx application Application import javafx scene Scene import java
  • 如何将这个数学方程写成c++

    我不知道如何编写C 中给出的公式 也不能使用捷径 我必须编写长版本的代码 这是我到目前为止所拥有的 4x 3 8x 2 9x 18 y 7 x 3 3x 2 18 表示绝对值 它需要采用这样的格式 这是我书中的一个示例 double y 4
  • Android的EditText在显示虚拟键盘并且涉及SurfaceView时隐藏

    我有一个简单的用户界面 EditText 应位于 SurfaceView 下方 我使用RelativeLayout 来排列这两个视图 现在 当我点击 EditText 打开虚拟键盘时 SurfaceView 会向上滑动 但 EditText
  • 同时维护多个emacs配置

    我想在同一台电脑上的同一用户帐户上同时维护多个 emacs 配置 例如 emacs prelude emacs starter kit 和我自己的自定义 emacs 配置 为此 我设置了 emacs1 d emacs2 d emacs3 d
  • Qt Signal/Slots 发送完整结构

    我正在尝试通过两个线程之间的信号 槽发送一个结构 我的信号 槽已正确连接 并且我已经能够发送包含部分数据的 QString 但现在我需要发送整个数据 而结构似乎是最明智的 但是 当我尝试时 信号未发送 接收 问题似乎仅与发送 接收结构 前后
  • 在android中通过cardview创建视图

    I want to create this layout 这是一个卡片视图 灰色视图 和图像视图 蓝色视图 我使用这个代码
  • 使用 Facebook 登录 注销后出现问题

    我正在使用 facebook sdk 和 facebook connect 使用 asp net 和 c 将 Facebook 集成到我的网站中 用户可以使用该代码成功登录 我面临的问题是 每当用户通过 fb 登录时 如果用户从 faceb
  • 是否可以更改AVPlayer的背景颜色?如果是,怎么办?

    我希望将默认背景颜色从黑色更改为我想要的颜色 可能是与视频形成对比的颜色 大多数时候是黑色 我已将这段代码添加到我的viewWillAppear 功能 let playerLayer AVPlayerLayer player player
  • 向上或向下滚动时的 JavaScript 事件

    是否可以编写 JavaScript 来在手动向上或向下滚动 DIV 层的滚动条时执行操作 如果是这样 请给我一个提示 以实现一个简单的警报框 表示您向上滚动并向下滚动 您可以简单地使用onscrolljava脚本的事件 OnScroll 事
  • 在heroku上部署django网站出错

    我正在heroku 中部署我的django 网站 并在django 的setting py 文件中使用DATABASE 我正在遵循以下所有步骤赫罗库帮助 https devcenter heroku com articles getting
  • Android - 禁用 HDMI

    我的一个 Android 项目需要时不时地在 2 个 HDMI 输入之间切换 可能是一分钟一次 一根 HDMI 输入来自 Android 设备的 HDMI 输出 一根来自外部不可控源 我发现了一个 HDMI 开关 当信号可用时 它可以自动在
  • 前向声明类型 - 这背后的原因是什么

    Forward declare a type point to be a struct typedef struct point point Declare the struct with integer members x y struc
  • 从动态内容提供者加载 html5 音频并进行身份验证

    假设我们这里有一个内容提供者端点myuri org api auth sources id 它返回由 id 标识的音乐文件 路线 api auth 需要身份验证 在本例中 这是通过在请求标头中传递 JWT 来完成的 如下所示Authenti
  • Symfony2 根据提交的数据形成验证组

    我有一些复杂的表单 带有多个子表单 并且我希望能够根据主表单中选择的单选按钮单独验证每个子表单 我想通过验证组来实现这一目标 注 我没有data class模型 我使用数组 这是我的简化表格 class MyType extends Abs
  • Prolog - 从列表中删除具有相同第一个值的对

    我有这样的对象列表 list obj x y obj x z obj a b obj b c 我想删除那些共享相同第一个值的元素 这样我就可以使用修改后的列表 在这种情况下 最终列表将如下所示 list obj a b obj b c 有人
  • 为什么比较器声明等于?

    比较器接口有自己的equals 方法 任何班级都会得到equals 默认情况下通过 Object 类 需要具备什么equals 接口内的方法 Comparator细化合同Object equals 它必须满足以下规定的约束Object eq