标签: equality

IEquatable与重写Object.Equals()有什么区别?

我希望我的Food类能够在它等于另一个实例时进行测试Food.我稍后会对List使用它,我想使用它的List.Contains()方法.我应该实施IEquatable<Food>还是仅仅覆盖Object.Equals()?来自MSDN:

此方法通过使用默认的相等比较器来确定相等性,由对象的T的IEquatable.Equals方法的实现(列表中的值的类型)定义.

所以我的下一个问题是:.NET框架的哪些函数/类可以使用Object.Equals()?我应该首先使用它吗?

.net c# equality equals iequatable

168
推荐指数
3
解决办法
6万
查看次数

将Java中的两个对象与可能的空值进行比较

我想在Java中比较两个字符串的相等性,当其中一个或两个都可以时null,所以我不能简单地调用.equals().什么是最好的方法?

boolean compare(String str1, String str2) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

编辑:

return ((str1 == str2) || (str1 != null && str1.equals(str2)));
Run Code Online (Sandbox Code Playgroud)

java null equality

162
推荐指数
7
解决办法
15万
查看次数

比较两个集合的相等性,而不管它们中的项目顺序如何

我想比较两个集合(在C#中),但我不确定有效实现它的最佳方法.

我已经阅读了关于Enumerable.SequenceEqual的其他帖子,但这并不是我正在寻找的.

在我的情况下,如果它们都包含相同的项目(无论顺序),则两个集合将是相等的.

例:

collection1 = {1, 2, 3, 4};
collection2 = {2, 4, 1, 3};

collection1 == collection2; // true
Run Code Online (Sandbox Code Playgroud)

我通常做的是遍历一个集合中的每个项目,看看它是否存在于另一个集合中,然后循环遍历另一个集合的每个项目,看它是否存在于第一个集合中.(我首先比较长度).

if (collection1.Count != collection2.Count)
    return false; // the collections are not equal

foreach (Item item in collection1)
{
    if (!collection2.Contains(item))
        return false; // the collections are not equal
}

foreach (Item item in collection2)
{
    if (!collection1.Contains(item))
        return false; // the collections are not equal
}

return true; // the collections are equal
Run Code Online (Sandbox Code Playgroud)

但是,这并不完全正确,并且它可能不是比较两个集合的最有效方法.

我能想到的一个例子是错误的:

collection1 …
Run Code Online (Sandbox Code Playgroud)

.net collections comparison equality

154
推荐指数
9
解决办法
9万
查看次数

LINQ选择与匿名类型不同

所以我有一组对象.确切的类型并不重要.从中我想提取一对特定属性的所有唯一对,因此:

myObjectCollection.Select(item=>new
                                {
                                     Alpha = item.propOne,
                                     Bravo = item.propTwo
                                }
                 ).Distinct();
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:在这种情况下会不会使用默认对象equals(这对我来说没用,因为每个对象都是新的)或者可以告诉它做一个不同的equals(在这种情况下,Alpha和Bravo的值相等) =>相等的实例)?有没有办法实现这个结果,如果不这样做的话?

c# linq equality anonymous-types distinct

147
推荐指数
3
解决办法
10万
查看次数

jQuery对象相等

如何确定两个jQuery对象是否相等?我希望能够在数组中搜索特定的jQuery对象.

$.inArray(jqobj, my_array);//-1    
alert($("#deviceTypeRoot") == $("#deviceTypeRoot"));//False
alert($("#deviceTypeRoot") === $("#deviceTypeRoot"));//False
Run Code Online (Sandbox Code Playgroud)

jquery equality

146
推荐指数
5
解决办法
15万
查看次数

Scala中==和.equals之间的区别是什么?

==.equals()Scala有什么区别,什么时候使用哪个?

实现是否与Java相同?

编辑:相关问题谈论的具体情况AnyVal.更一般的情况是Any.

scala equality scala-java-interop

137
推荐指数
5
解决办法
5万
查看次数


bash字符串相等

bash,等于和双等测试运算符之间有什么区别?

[[ "a" = "a" ]] && echo equal || echo not-equal
[[ "a" == "a" ]] && echo equal || echo not-equal
[[ "a" = "b" ]] && echo equal || echo not-equal
[[ "a" == "b" ]] && echo equal || echo not-equal
Run Code Online (Sandbox Code Playgroud)

结果是:

equal
equal
not-equal
not-equal
Run Code Online (Sandbox Code Playgroud)

bash equality equals

122
推荐指数
1
解决办法
11万
查看次数

确定2个列表是否具有相同的元素,无论顺序如何?

对不起这个简单的问题,但我很难找到答案.

当我比较2个列表时,我想知道它们是否"相等",因为它们具有相同的内容,但顺序不同.

例如:

x = ['a', 'b']
y = ['b', 'a']
Run Code Online (Sandbox Code Playgroud)

我想x == y评价一下True.

python equality list python-2.x

109
推荐指数
2
解决办法
10万
查看次数

默认的.equals和.hashCode如何适用于我的课程?

说我有自己的课

public class MyObj { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

它有一些属性和方法.它不实现equals,不实现hashCode.

一旦我们调用equals和hashCode,默认实现是什么?来自Object类?他们是什么?默认等于如何工作?默认的hashCode如何工作以及返回什么?==只会检查它们是否引用同一个对象,所以这很容易,但是equals()和hashCode()方法呢?

java equality equals object hashcode

103
推荐指数
3
解决办法
6万
查看次数