不同类的equals方法

1、Object类的equals( )

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

要点:关系运算符 ==,比较内存地址,若两个对象在内存中地址一致,则返回 true 。

2、Integer类的equals( ),其它数值类以此为例

public boolean equals(Object obj) {
	if (obj instanceof Integer) {
		return value == ((Integer)obj).intValue();
	}
	return false;
}

要点:数值类比较的已经不是内存地址了,就是单纯的数值。这是“真 · 重写”。

3、String类的equals( )

public boolean equals(Object anObject) {
	if (this == anObject) {
		return true;
	}
	if (anObject instanceof String) {
		String aString = (String)anObject;
		if (coder() == aString.coder()) {
			return isLatin1() ? StringLatin1.equals(value, aString.value) : StringUTF16.equals(value, aString.value);
		}
	}
	return false;
}

要点:String类也是真·重写,不仅可以比较地址,还可以比较“字符串值”。

4、HashMap的equals( )

public final boolean equals(Object o) {
	if (o == this)
		return true;
	if (o instanceof Map.Entry) {
		Map.Entry<?,?> e = (Map.Entry<?,?>)o;
		if (Objects.equals(key, e.getKey()) && Objects.equals(value, e.getValue()))
			return true;
	}
	return false;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值