问题标签 [equals]

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 回答
2593 浏览

c# - Object.Equals(obj1, obj2) vs obj1.Equals(obj2)?

假设这两个对象都不是值类型,并且都表示已覆盖 Equals(...) 方法的类型,那么以下之间是否存在任何功能差异:

  • 打电话obj1.Equals(obj2)
  • 调用Object.Equals(obj1, obj2) ...或者它们在功能上是否相同?

我正在阅读的 Apress 书(Pro C# 2008)实际上非常好,将这种方法(以及ReferenceEquals(...))称为“(非常有用的)静态方法”,但我很难看到这里的好处。

因为ReferenceEquals(...)我可以看到该实用程序,因为它仍然能够确定两个对象是否引用同一个对象(无论Equals(...)方法和==运算符是否已被覆盖)。

对于另一个......不是那么多;我只是在这里遗漏了什么吗?

0 投票
4 回答
227 浏览

javascript - JS:在提示框中输入一个 TRUE 值并让它提醒它的变量

我想知道是否可以在提示框中输入变量的值,让它在原始变量的警报中返回给我。

说:var myGoal = "answer";如果我answer在提示符中输入“”,那么获取我的“ answer”值,搜索并让它myGoal在警报中返回的好方法是什么?

0 投票
4 回答
4561 浏览

java - 我们应该总是覆盖equals吗?

在编写自己的类时,是否总是需要覆盖equals(Object o)

如果我不这样做,它会自动检查所有字段是否相同?或者它只是检查两个变量是否指向同一个对象?

0 投票
21 回答
198029 浏览

java - compareTo() 与 equals()

在 Java中测试 's 的相等性时,String我一直使用它equals(),因为对我来说这似乎是最自然的方法。毕竟,它的名字已经说明了它打算做什么。但是,我的一位同事最近告诉我,有人教我使用compareTo() == 0而不是equals(). 这对我来说感觉不自然(因为compareTo()它是为了提供排序而不是比较相等),甚至有点危险(因为compareTo() == 0不一定在所有情况下都意味着相等,即使我知道它确实适用于String's)。

他不知道为什么教他使用compareTo()而不是equals()for String,我也找不到任何原因。这真的是个人品味问题,还是任何一种方法都有真正的理由?

0 投票
4 回答
266 浏览

c# - GetHashCode 问题

任何人都可以帮助解释以下内容。我遇到了一个字典问题,当对象和对象都成功时,它的ContainsKey评估结果为假。下面是 Visual Studio 中即时窗口的输出:EqualsGetHashCode

我错过了什么吗?任何想法都非常感谢。

0 投票
3 回答
43773 浏览

java - 有没有办法检查两个集合是否包含相同的元素,与顺序无关?

我一直在寻找一种类似 的方法Arrays.equals(a1, a2),但忽略元素顺序。我无法在 Google Collections(类似Iterables.elementsEqual(),但确实考虑了排序)和 JUnit(assertEquals()显然只是调用equals()Collection,这取决于 Collection 实现,这不是我想要的)中找到它如果这样的方法需要Iterables 是最好的,但我也可以简单地使用Collections 这样的方法当然会考虑到集合中的任何重复元素(所以它不能简单地测试containsAll())。

请注意,我不是在问如何实现这样的事情,我只是想知道是否有任何标准 Collections 库有它。

0 投票
5 回答
9321 浏览

java - 一个高效的 equals(Object o) 实现

我在写出标题后阅读了这篇 SO帖子,但仍然决定解决关于 Java 中 equals 的防错实现的问题。这是我的正常实现

使用 Apache 的 EqualsBuilder 来完成日常工作。比这更容易的是我的 Netbean 自动生成的equals(o)实现

我从 2 个 diff 项目中获取这些,但他们都试图完成相同的事情,但使用的是 diff 方法。你更喜欢哪种风格,或者你发现了什么缺陷?

0 投票
2 回答
1364 浏览

java - PropertyChangeSupport 和 equals 方法

我会尽量清楚地解释我的问题:)。我正在使用 PropertyChangeSupport 通知已注册视图的属性更改。其中一个属性是一个对象,该对象的属性在每个视图秒内都会更改。我不想在每次更新时为这个特定对象创建新实例(让 propertychangelistener 注意到更改),所以我编写了自己的 equals 方法,在其中省略了与自身的比较。

不幸的是,这并没有达到我想要的效果。如果我创建对象的副本并在其上触发属性更改方法,那么它可以正常工作。

我在这里想念什么?

- 编辑

我意识到,因为我使用的是同一个实例而不是它的副本,所以属性指向同一个地方,因此比较总是正确的。是否有解决方法(除了创建副本)。或者每秒创建一个对象的副本有多糟糕,例如。

0 投票
12 回答
18001 浏览

java - 强制一个类覆盖 .equals 方法

我有一堆实现通用接口的类:Command。

这一堆类去了一个地图。

为了使 Map 正常工作,我需要每个实现 Command 的类来覆盖该Object.equals(Object other)方法。

没关系。

但我想强制覆盖平等。=> 当实现命令的东西不覆盖等于时,会出现编译错误。

这可能吗?

编辑:顺便说一句,我还需要强制覆盖哈希码...

0 投票
1 回答
6439 浏览

java - 在Java中覆盖HashMap equals方法

我注意到在 HashMap 的源代码中,它将 equals 方法列为 final。为什么当我覆盖它时我没有收到编译错误?

Java HashMap equals 方法: