Tag: 等于

Linq:在连接中==和equals有什么区别?

我总是想知道为什么在linq连接中有一个equals关键字,而不是使用==操作符。 Property deadline = (from p in properties join w in widgets on p.WidgetID equals w.ID select p).First(); 代替 Property deadline = (from p in properties join w in widgets on p.WidgetID == w.ID select p).First(); [编辑]改写了这个问题,并修改了例子。

为什么BigDecimal(“5.50”)不等于BigDecimal(“5.5”)以及如何解决此问题?

其实,我find了可能的解决办法 //returns true new BigDecimal ("5.50").doubleValue () == new BigDecimal("5.5").doubleValue () 当然,可以用Math.abs (v1 – v2) < EPS这样的东西来改进,使得比较更稳健,但问题是这个技术是可以接受的还是有更好的解决scheme呢? 如果有人知道为什么Javadevise者决定以这种方式实现BigDecimal的平等,那么读起来会很有趣。

双等于vs是在Python中

我在Python解释器中运行以下代码: >>> foo = 10 >>> dir(foo) == dir(10) True >>> dir(foo) is dir(10) False >>> 为什么是这样?

你怎么说不等于在ruby?

这是我想要在我的程序中做的更简单的例子,但也是类似的想法。 在一个if语句中,我怎么说不等于? 是!=正确的? def test vara = 1 varb = 2 if vara == 1 && varb != 3 puts "correct" else puts "false" end end

散列码的哈希码和相等

请在Hashset中澄清我的疑问。 考虑下面的代码, class Person { String name; Person(String n) { name=n; } public String getName() { return name; } @Override public boolean equals(Object arg0) { System.out.println("in equals"); Person obj=(Person)arg0; System.out.println("1st "+getName()); System.out.println("2nd "+obj.getName()); if(this.getName().equals(obj.getName())) { return true; } return false; } @Override public int hashCode() { System.out.println("in hash code"); System.out.println(" value is "+Integer.valueOf(name.charAt(0))); return Integer.valueOf(name.charAt(0)); […]

Groovy在GStringImpl上使用equals()和==的不同结果

根据groovy文档 ,==只是一个'聪明的'equals(),因为它也避免了NullPointerException。 所以,如果对象不为null,==和equals()应该返回相同的值。 但是,执行以下脚本时,我得到了意想不到的结果: println "${'test'}" == 'test' println "${'test'}".equals('test') 我得到的输出是 true false 这个例子可以在这里find。 这是一个已知的与GStringImpl有关的错误或者我错过了什么?

有没有完整的IEquatable实现参考?

我在这里的许多问题都涉及到IEquatable的实现。 我发现正确实施是非常困难的,因为在天真的实现中存在很多隐藏的错误,而我发现的文章相当不完整。 我想find或写一个明确的参考,其中必须包括: 如何正确实现IEquatable 如何正确覆盖Equals 如何正确覆盖GetHashCode 如何正确实现ToString方法 如何正确实现运算符== 如何正确执行操作符! 这样一个完整的参考已经存在? PS:即使MSDN的参考似乎有缺陷给我

是否有可能在java中做比较器,但实现自定义equals()和hashCode()

我有一个对象的数组,我想连接它与另一个对象的数组,除了具有相同的ID的对象。 该对象在系统中的许多地方使用,没有哈希码或等于实现。 所以我不想实现hashCode()和equals(),因为我害怕在系统中某处使用那些对象,我不知道这些。 所以我想把所有的对象放在一个集合中,但不知何故使该对象使用自定义提供的hashCode()和equals()。 像自定义比较器(),但等于。

在Java中使用==运算符来比较包装器对象

我正在读Kathy Sierra和Bert Bates的SCJP Java 6,这本书让我非常困惑。 在页面245他们声明下面的代码。 Integer i1 = 1000; Integer i2 = 1000; if(i1 != i2) System.out.println("different objects"); //Prints output different objects 然后在下一页他们有以下代码 Integer i3 = 10; Integer i4 = 10; if(i3 == i4) System.out.println("same objects"); //Prints output same objects 我很困惑! 当我自己尝试这个,似乎你不能使用==比较相同的方式,你会使用equals()方法。 即使整数variables设置为相同的值(即10),使用==总是给我“假”。 我对么? 使用==比较相同的Integer对象(具有相同的值)将始终导致“false”

我应该在JPA实体中编写equals()方法吗?

我想检查实体是否在另一个实体的集合成员( @OneToMany或@ManyToMany )中: if (entity2.getEntities1().contains(entity1)) { }