在Java中对字符串和对象使用equals()方法

在Java中对字符串和对象使用equals()方法,第1张

在Java中对字符串和对象使用equals()方法

因为
String的equals()
比较内容,而不是对象本身。

公共布尔等于(Object anObject)

将此字符串与指定对象进行比较。当且仅当参数不为null且该

String
对象表示与此对象相同的字符序列时,结果为true 。

    public boolean equals(Object anObject) {    if (this == anObject) {        return true;    }    if (anObject instanceof String) {        String anotherString = (String)anObject;        int n = count;        if (n == anotherString.count) { char v1[] = value; char v2[] = anotherString.value; int i = offset; int j = anotherString.offset; while (n-- != 0) {     if (v1[i++] != v2[j++])         return false; } return true;        }    }    return false;}

(链接到String.equals()的源)


等于Object相等

类的equals方法

Object
在对象上实现了最有区别的对等关系。也就是说,对于任何非空引用值
x
y
,当且仅当
x
y
引用同一对象(
x== y
具有值
true
)时,此方法返回true 。

public boolean equals(Object obj) {    return (this == obj);}

(链接到Object.equals()的源)

另外,请不要忘记

equals()
函数的约定:

equals方法对非null对象引用实现对等关系:

  • 这是 自反的 :对于任何非null的参考值
    x
    x.equals(x)
    应返回true。
  • 它是 对称的
    :对于任何非空引用值
    x
    y
    x.equals(y)
    当且仅当
    y.equals(x)
    返回true时,才应返回true。
  • 它是 传递
    性:对于任何非空的参考值
    x
    y
    以及
    z
    ,如果
    x.equals(y)
    回报率
    true
    y.equals(z)
    回报率
    true
    ,那么
    x.equals(z)
    应该返回
    true
  • 它是 一致的
    :对于任何非null的引用值
    x
    和,只要不修改对象的equals比较中使用的信息
    y
    ,就可以多次调用
    x.equals(y)
    一致返回
    true
    或一致返回
    false
  • 对于任何非null的参考值
    x
    x.equals(null)
    应返回
    false



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5507767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存