equals
Posted top啦它
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了equals相关的知识,希望对你有一定的参考价值。
基本类型没有equals方法。
但是这些基本类型的包装类具有equals方法。
Objects中的equals
public boolean equals(Object obj)
//判断是不是同一个引用对象,而不是对象中定义变量的内容。
return (this == obj);
eg:
public class Car
Integer a;
public Car(Integer a)
this.a = a;
public static void main(String[] args)
Car xiaoming = new Car(1);
Car mingxiao = new Car(1);
System.out.println(xiaoming.equals(mingxiao));
Car ingmxiao = xiaoming;
System.out.println(xiaoming.equals(ingmxiao));
输出结果:
false
true
如果希望根据对象中变量的值进行判断的话,可以重写equals(),如下。
package bb;
public class Car
Integer a;
public Car(Integer a)
this.a = a;
public static void main(String[] args)
Car xiaoming = new Car(1);
Car mingxiao = new Car(1);
System.out.println(xiaoming.equals(mingxiao));
Car ingmxiao = xiaoming;
System.out.println(xiaoming.equals(ingmxiao));
@Override
public boolean equals(Object obj)
if (this == obj)
return true;
Car equalsObj = (Car) obj;
if (this.a == equalsObj.a)
return true;
return false;
true
true
Integer中的equals
public boolean equals(Object obj)
if (obj instanceof Integer) //先判断是否是Integer类型,如果是的话,才会进行下一步判断。
return value == ((Integer)obj).intValue();
return false;
public class Car1
public static void main(String[] args)
Integer a = 1;
Integer b = 1;
boolean equals = a.equals(b);
System.out.println(equals);
输出
true
String中的equals
public boolean equals(Object anObject)
if (this == anObject) //判断是否是同一个引用。
return true;
if (anObject instanceof String) //如果不是同一个引用的话,就会判断值是否相等
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length)
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0)
if (v1[i] != v2[i])
return false;
i++;
return true;
return false;
public class Car1
public static void main(String[] args)
String a = "hahaha";
String b = "hahaha";
System.out.println(a.equals(b));
true
以上是关于equals的主要内容,如果未能解决你的问题,请参考以下文章