草庐IT

equal_range

全部标签

与equals方法相关的Java代码

我正在练习考试,发现了一个我不理解的示例问题。对于下面的代码,找出输出是什么:publicclassTest{privatestaticintcount=0;publicbooleanequals(Testtestje){System.out.println("count="+count);returnfalse;}publicstaticvoidmain(String[]args){Objectt1=newTest();Objectt2=newTest();Testt3=newTest();Objecto1=newObject();++count;t1.equals(t2);++co

java - Java中hashCode和equals方法的关系

这个问题在这里已经有了答案:WhatissuesshouldbeconsideredwhenoverridingequalsandhashCodeinJava?(11个回答)WhydoIneedtooverridetheequalsandhashCodemethodsinJava?(31个回答)关闭9年前。我在很多地方读到过,在Java中重写equals方法时,也应该重写hashCode方法,否则就是“违反契约(Contract)”。但是到目前为止,如果我只覆盖equals方法而不是hashCode方法,我还没有遇到任何问题。什么是契约(Contract)?为什么我在违反契约(Cont

java - Java中hashCode和equals方法的关系

这个问题在这里已经有了答案:WhatissuesshouldbeconsideredwhenoverridingequalsandhashCodeinJava?(11个回答)WhydoIneedtooverridetheequalsandhashCodemethodsinJava?(31个回答)关闭9年前。我在很多地方读到过,在Java中重写equals方法时,也应该重写hashCode方法,否则就是“违反契约(Contract)”。但是到目前为止,如果我只覆盖equals方法而不是hashCode方法,我还没有遇到任何问题。什么是契约(Contract)?为什么我在违反契约(Cont

Java null 检查为什么使用 == 而不是 .equals()

在Java中,有人告诉我在进行空值检查时应该使用==而不是.equals()。这是什么原因? 最佳答案 它们是两个完全不同的东西。==比较变量包含的对象引用(如果有)。.equals()检查两个对象是否equals根据它们关于相等含义的契约(Contract)。根据它们的契约(Contract),两个不同的对象实例完全有可能“相等”。还有一个小细节,因为equals是一个方法,如果你尝试在null引用上调用它,你会得到一个NullPointerException.例如:classFoo{privateintdata;Foo(intd

Java null 检查为什么使用 == 而不是 .equals()

在Java中,有人告诉我在进行空值检查时应该使用==而不是.equals()。这是什么原因? 最佳答案 它们是两个完全不同的东西。==比较变量包含的对象引用(如果有)。.equals()检查两个对象是否equals根据它们关于相等含义的契约(Contract)。根据它们的契约(Contract),两个不同的对象实例完全有可能“相等”。还有一个小细节,因为equals是一个方法,如果你尝试在null引用上调用它,你会得到一个NullPointerException.例如:classFoo{privateintdata;Foo(intd

java - compareTo() 与 equals()

在Java中测试String的相等性时,我一直使用equals(),因为对我来说这似乎是最自然的方法。毕竟,它的名字已经说明了它打算做什么。然而,我的一位同事最近告诉我,有人教我使用compareTo()==0而不是equals()。这感觉不自然(因为compareTo()旨在提供排序而不是比较相等),甚至有些危险(因为compareTo()==0并不一定意味着在所有情况下都相等,即使我知道它对我来说是String's)。他不知道为什么教他使用compareTo()而不是equals()来表示String,我可以也找不到任何理由。这真的是个人喜好问题,还是任何一种方法都有真正的原因?

java - compareTo() 与 equals()

在Java中测试String的相等性时,我一直使用equals(),因为对我来说这似乎是最自然的方法。毕竟,它的名字已经说明了它打算做什么。然而,我的一位同事最近告诉我,有人教我使用compareTo()==0而不是equals()。这感觉不自然(因为compareTo()旨在提供排序而不是比较相等),甚至有些危险(因为compareTo()==0并不一定意味着在所有情况下都相等,即使我知道它对我来说是String's)。他不知道为什么教他使用compareTo()而不是equals()来表示String,我可以也找不到任何理由。这真的是个人喜好问题,还是任何一种方法都有真正的原因?

java - BigDecimal equals() 与 compareTo()

考虑简单的测试类:importjava.math.BigDecimal;/***@authorTheEliteGentleman**/publicclassMain{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubBigDecimalx=newBigDecimal("1");BigDecimaly=newBigDecimal("1.00");System.out.println(x.equals(y));System.out.println(x.compareTo(y)==

java - BigDecimal equals() 与 compareTo()

考虑简单的测试类:importjava.math.BigDecimal;/***@authorTheEliteGentleman**/publicclassMain{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubBigDecimalx=newBigDecimal("1");BigDecimaly=newBigDecimal("1.00");System.out.println(x.equals(y));System.out.println(x.compareTo(y)==

java - 覆盖 java equals() 方法 - 不工作?

我在equals()中遇到了一个有趣(而且非常令人沮丧)的问题。今天的方法导致我认为是一个经过良好测试的类崩溃并导致我花了很长时间才找到的错误。为了完整起见,我没有使用IDE或调试器-只是很好的老式文本编辑器和System.out。时间非常有限,这是一个学校项目。无论如何——我正在开发一个基本的购物车,它可以包含一个ArrayList的Book对象。为了实现addBook(),removeBook(),和hasBook()Cart的方法,我想检查Book已存在于Cart.所以我走了-publicbooleanequals(Bookb){...//Morecodehere-nullche