equals相关内容
有没有办法覆盖 Set 数据类型使用的 equals 方法?我为一个名为Fee 的类编写了一个自定义equals 方法.现在我有一个 Fee 的 LnkedList 并且我想确保没有重复的条目.因此,我正在考虑使用 LinkedList 的 Set,但决定两个费用是否相等的标准存在于重写的 equals 方法中费用类. 如果使用 LinkedList,我将不得不遍历每个列表项,并在 Fee
..
Set 为什么不提供一个操作来获取一个等于另一个元素的元素? 设置设置 = ...;...Foo foo = new Foo(1, 2, 3);Foo bar = set.get(foo);//从 Set 中获取等于 foo 的 Foo 元素 我可以问 Set 是否包含一个等于 bar 的元素,那为什么我不能得到那个元素呢?:( 为了澄清,equals 方法被覆盖,但它只检查其中一个字段
..
我正在检查 Windows 窗体 ListBoxCollection 添加方法,在分析过程中,我发现方法“add"调用了基础对象中的 Equals 方法为什么这个方法做这个动作? 我使用了“调用堆栈"并且找到了这个答案: 我们调用 :System.Windows.Forms.ListBox.ObjectCollection.Add(object item) 它会调用:System
..
以下 C# 代码不起作用: int iValue = 0;双 dValue = 0.0;bool isEqual = iValue.Equals(dValue); 那么问题来了:比较 Double 和 Int 的最佳方法是什么? 解决方案 你真的不能用幼稚的方式比较浮点和整数值;特别是,因为有经典的 浮点数 代表性挑战.您可以做的是从另一个中减去一个,看看它们之间的差异是否小于您关心的
..
我正在阅读 Kathy Sierra 和 Bert Bates 的 SCJP Java 6,这本书让我非常困惑.在第 245 页上,他们声明以下代码. 整数 i1 = 1000;整数 i2 = 1000;如果(i1 != i2)System.out.println("不同的对象");//打印输出不同的对象 然后在下一页他们有以下代码 整数 i3 = 10;整数 i4 = 10;如果(i3 =
..
当我测试这段代码时: java.util.Date date = new java.util.Date();java.util.Date stamp = new java.sql.Timestamp(date.getTime());assertTrue(date.equals(stamp));assertTrue(date.compareTo(stamp) == 0);assertTrue(st
..
对于字符串,您必须使用 equals 来比较它们,因为 == 只比较引用. 如果我将字符与 == 进行比较,它会给出预期的结果吗? 我在stackoverflow上看到过类似的问题,例如 == vs equals()有什么区别在 Java 中? 但是,我还没有看到有人询问有关在字符上使用 == 的问题. 解决方案 是的,char 和其他原始类型一样,你可以通过 ==
..
我有一个名为 FormObject 的对象,它包含两个 ArrayList - oldBooks 和 newBooks - 两者都包含 Book 对象. oldBooks 允许包含重复的 Book 对象newBooks 不允许在其内部包含重复的 Book 对象,并且不能在 oldBooks 列表中包含任何重复的 Book 对象. 重复 Book 的定义很复杂,我无法覆盖 equals
..
我正在阅读 Joshua Bloch 的 Effective java,在 Item 8: Obey the general contract when overriding equals 中写了这个语句 对于浮点字段,使用 Float.compare 方法;对于双字段,请使用双重比较.对float和double字段做了特殊处理Float.NaN、-0.0f 和类似的 double 的存在是
..
我想测试我的班级的 equals() 方法,但 Mockito 似乎每次都在调用存根版本.我的测试如下; PluginResourceAdapter 适配器 = mock (PluginResourceAdapter.class);PluginResourceAdapter other = mock (PluginResourceAdapter.class);when(adapter.getNu
..
我只是想知道,如果 HashMap 的键是可变的会发生什么,下面的测试程序证明了这一点,我无法理解 equals 和 hashCode 方法何时返回true 和相同的值,为什么 hashmap.containsKey 返回 false. 公共类 MutableKeyHashMap {公共静态无效主要(字符串[]a){HashMapmap = new HashMap
..
考虑以下场景: Object o1 = new Object();对象 o2 = 新对象();HashMapmap = new HashMap();map.put(o1, o2);boolean test1 = map.get(o1) == o2;//这评估为真//现在假设我们改变了 o1 的状态:o1.setSomeInternalState(Object newS
..
..
Hashcode()和equals()的概念是 1) 如果两个对象根据 equal() 相等,则对这两个对象中的每一个调用 hashcode 方法应该会产生相同的 hashcode. 另一个是 2) 不要求如果两个对象根据equal()不相等,则对两个对象中的每一个调用hashcode方法都必须产生不同的值. 我尝试并理解了第一个,这是第一点的代码. 公共类测试{公共静态
..
JDK 中是否有一种方法可以比较两个对象的相等性,并考虑空值?像这样: public static boolean equals(Object o1, Object o2){如果(o1 == 空){返回 o2 == 空;//两个空值被认为是相等的}否则如果(o2 == null){返回假;}返回 o1.equals(o2);} 自己编写这个方法似乎很愚蠢,因为我认为它必须已经存在于某处.
..
是使用 static Object.Equals 来检查null 比使用 == 运算符或 常规 Object.Equals?后两者是不是很容易被覆盖,以至于检查 null 不能按预期工作(例如,当比较值 为 null 时返回 false)? 换句话说,是这样的: if (Equals(item, null)) {/* 做某事 */} 比这更强大: if (item == null) {
..
一些由框架填充的类(如 bean).所以你不能保证所有的字段都设置了. 查看示例:标记为 @Entity 的类通常具有 Integer id 字段.hashCode 可以写成: public int hashCode() {返回 id.hashCode();} 但防御性代码可能如下所示: public int hashCode() {返回 (id != null) ?id.hashCo
..
我有一个地址对象,我想为其创建一个 equals 方法.我可以通过执行以下操作(缩短一点)来使这变得非常简单: public boolean equals(Object obj){如果(这个 == 对象)返回真;如果(对象 == 空)返回假;如果(getClass()!= obj.getClass())返回假;地址其他=(地址)obj;返回 this.getStreet().equals(oth
..
equals 对于null,如下: 对于任何非空引用值x,x.equals(null)应该return false. 这很奇怪,因为如果 o1 != null 和 o2 == null,那么我们有: o1.equals(o2)//返回假o2.equals(o1)//抛出 NullPointerException o2.equals(o1) 抛出 NullPointerExcepti
..
考虑以下 SSCCE: public static void main(String[] args) {LinkedHashSetset1 = new LinkedHashSet();set1.add("鲍勃");set1.add("汤姆");set1.add("山姆");LinkedHashSetset2 = new LinkedHashSet();set2.add("山姆");set2.ad
..