本集主要内容.
1. hashCode()的作用
2. hashCode()的实现方法.
3. toString()的作用
4. toString()的实现方法.
hash算法 (哈希算法)
所有的类都拥有hashCode()方法.都是object里面的.
hascCode()广泛用于类型框架.
java当中的toString()函数。供开发者调试使用
User u = new User();
System.out.println(u);
它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法
总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法
class User{
String name;
int age;
public User(String name , int age){
this.name = name;
this.age = age;
}
public boolean equals(Object obj){
if(this == obj){
return true;
}
boolean b = obj instanceof User;
if(b){
User u = (User)obj;
if(this.age == u.age && this.name.equals(u.name)){
return true;
}
else{
return false;
}
}
else{
return false;
}
}
public int hashCode(){
int result = 17;
result = 31*result + age;
result = 31*result + name.hashCode();
return result;
}
public String toString(){
String result = "";//不加这行也行,下一行的result也可以省略
result = result + "age:" +age +"," +"name:"+name;
return result;
}
}
import java.util.*;
class Test{
public static void main(String args[]){
User u = new User("zhangsan",20);
//HashMap<User,String> map = new HashMap<User,String>();
//map.put(u,"abc");
//String s = map.get(new User("zhangsan",12));
//System.out.println(s);
System.out.println(u);
}
}
不必熟练记忆,因为eclispe可以帮助复写这些函数