==与equals的区别案例

来源:互联网 发布:怎么淘宝客推广 编辑:程序博客网 时间:2024/06/05 21:15

1.先重写equlas方法

package www.csdn.net.dengyu;

 

public class Student {

 

public String cardId;

 

@Override

public boolean equals(Object obj) {

// 1.先判断是否为null

if (obj == null) {

return false;

}

 

// 2.判断obj是否是当前类的类型

if (obj instanceof Student) {

 

// 3.强制造型

Student stu = (Student) obj;

 

// 4.改变比较条件

if (this.cardId.equals(stu.cardId)) {

return true;

}

}

return false;

}

 

}

 

2.测试看结果根据代码分析

package www.csdn.net.dengyu;

 

import java.util.HashSet;

import java.util.Set;

 

public class TestEquals {

 

 

public static void main(String[] args) {

//why?  //answer

Student s1 = new Student();

s1.cardId="xxxx01";

Student s2 = new Student();

s2.cardId="xxxx01";

System.out.println(s1==s2);// hashCode;

System.out.println(s1.equals(s2));//true

//set不允许重复值

Set<Student> stus = new HashSet<Student>();

stus.add(s1);

stus.add(s2);

System.out.println(stus.size());

String str1 = new String("hello");

String str2 = new String("hello");

System.out.println(str1==str2);

System.out.println(str1.equals(str2));//true

}

}


理解==与equals的区别


equals是可以重写的方法,可以自定义两个对象是否相等;

而==则是指两个对象在内存块中的二进制值是否相等。equals是比较的内容,==是比较的地址。




原创粉丝点击