问题标签 [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.
c# - Object.Equals(obj1, obj2) vs obj1.Equals(obj2)?
假设这两个对象都不是值类型,并且都表示已覆盖 Equals(...) 方法的类型,那么以下之间是否存在任何功能差异:
- 打电话
obj1.Equals(obj2)
- 调用
Object.Equals(obj1, obj2)
...或者它们在功能上是否相同?
我正在阅读的 Apress 书(Pro C# 2008)实际上非常好,将这种方法(以及ReferenceEquals(...)
)称为“(非常有用的)静态方法”,但我很难看到这里的好处。
因为ReferenceEquals(...)
我可以看到该实用程序,因为它仍然能够确定两个对象是否引用同一个对象(无论Equals(...)
方法和==
运算符是否已被覆盖)。
对于另一个......不是那么多;我只是在这里遗漏了什么吗?
javascript - JS:在提示框中输入一个 TRUE 值并让它提醒它的变量
我想知道是否可以在提示框中输入变量的值,让它在原始变量的警报中返回给我。
说:var myGoal = "answer";
如果我answer
在提示符中输入“”,那么获取我的“ answer
”值,搜索并让它myGoal
在警报中返回的好方法是什么?
java - 我们应该总是覆盖equals吗?
在编写自己的类时,是否总是需要覆盖equals(Object o)
?
如果我不这样做,它会自动检查所有字段是否相同?或者它只是检查两个变量是否指向同一个对象?
java - compareTo() 与 equals()
在 Java中测试 's 的相等性时,String
我一直使用它equals()
,因为对我来说这似乎是最自然的方法。毕竟,它的名字已经说明了它打算做什么。但是,我的一位同事最近告诉我,有人教我使用compareTo() == 0
而不是equals()
. 这对我来说感觉不自然(因为compareTo()
它是为了提供排序而不是比较相等),甚至有点危险(因为compareTo() == 0
不一定在所有情况下都意味着相等,即使我知道它确实适用于String
's)。
他不知道为什么教他使用compareTo()
而不是equals()
for String
,我也找不到任何原因。这真的是个人品味问题,还是任何一种方法都有真正的理由?
c# - GetHashCode 问题
任何人都可以帮助解释以下内容。我遇到了一个字典问题,当对象和对象都成功时,它的ContainsKey
评估结果为假。下面是 Visual Studio 中即时窗口的输出:Equals
GetHashCode
我错过了什么吗?任何想法都非常感谢。
java - 有没有办法检查两个集合是否包含相同的元素,与顺序无关?
我一直在寻找一种类似 的方法Arrays.equals(a1, a2)
,但忽略元素顺序。我无法在 Google Collections(类似Iterables.elementsEqual()
,但确实考虑了排序)和 JUnit(assertEquals()
显然只是调用equals()
Collection,这取决于 Collection 实现,这不是我想要的)中找到它如果这样的方法需要Iterable
s 是最好的,但我也可以简单地使用Collection
s 这样的方法当然会考虑到集合中的任何重复元素(所以它不能简单地测试containsAll()
)。
请注意,我不是在问如何实现这样的事情,我只是想知道是否有任何标准 Collections 库有它。
java - 一个高效的 equals(Object o) 实现
我在写出标题后阅读了这篇 SO帖子,但仍然决定解决关于 Java 中 equals 的防错实现的问题。这是我的正常实现
使用 Apache 的 EqualsBuilder 来完成日常工作。比这更容易的是我的 Netbean 自动生成的equals(o)
实现
我从 2 个 diff 项目中获取这些,但他们都试图完成相同的事情,但使用的是 diff 方法。你更喜欢哪种风格,或者你发现了什么缺陷?
java - PropertyChangeSupport 和 equals 方法
我会尽量清楚地解释我的问题:)。我正在使用 PropertyChangeSupport 通知已注册视图的属性更改。其中一个属性是一个对象,该对象的属性在每个视图秒内都会更改。我不想在每次更新时为这个特定对象创建新实例(让 propertychangelistener 注意到更改),所以我编写了自己的 equals 方法,在其中省略了与自身的比较。
不幸的是,这并没有达到我想要的效果。如果我创建对象的副本并在其上触发属性更改方法,那么它可以正常工作。
我在这里想念什么?
- 编辑
我意识到,因为我使用的是同一个实例而不是它的副本,所以属性指向同一个地方,因此比较总是正确的。是否有解决方法(除了创建副本)。或者每秒创建一个对象的副本有多糟糕,例如。
java - 强制一个类覆盖 .equals 方法
我有一堆实现通用接口的类:Command。
这一堆类去了一个地图。
为了使 Map 正常工作,我需要每个实现 Command 的类来覆盖该Object.equals(Object other)
方法。
没关系。
但我想强制覆盖平等。=> 当实现命令的东西不覆盖等于时,会出现编译错误。
这可能吗?
编辑:顺便说一句,我还需要强制覆盖哈希码...
java - 在Java中覆盖HashMap equals方法
我注意到在 HashMap 的源代码中,它将 equals 方法列为 final。为什么当我覆盖它时我没有收到编译错误?
Java HashMap equals 方法: