一、equals函数在Object类中,Object是所有类的父类。
== 为true,代表指向同一内存地址。
对象的内容相等
1)对象的类型相同
2)两个对象的成员变量的值完全相同
class User{
String name;
int age;
public boolean Equals(object obj) {
if(this == obj) {
return true;
} else {
boolean s = obj instanceof User; //判断obj是不是User对象
if(s){
User u = (User)obj;
if(this.age == u.age && this.name.equal(u.name)){
reture true;
}
} else {
return false;
}
}
}
}
二、hashCode()和toString(),都存在与Object类中
Hash算法:任意长度的数据,经过Hash算法,变成一个长度相同的散列值。
如果两个对象使用equals方法返回true,那么使用Hash算法生成的散列值也相同。
HashMap<User, String> map = new HashMap<User, String> ();
map.put(u,"123");
String s = map.get("zhangdan",12);
public int hasNext(){
int result = 17;
result = 31resultage;
renull - 31*name.bashCode();
return result;
}
toString()方法:把任意一个对象转换成字符串
User u = new User();
System,out,println(u); //会默认调用u.toString()方法
//重写toString()方法
public String toString(){
println("age:"+age+" name:"+name);
}