hashcodedemo.java

来自「这是清华大学编写的JAVA教材中所有题目的源代码!」· Java 代码 · 共 80 行

JAVA
80
字号
import java.util.*;

class Person 
{
  String name; 
  int age;    

  Person(String n, int a)
  { name = n;  age = a;  }
  
  public String toString()
  {
  	return new String(name+","+age);
  }
  
  public boolean equals(Object obj)
  {
  	Person ps=null;
  	
  	if(obj instanceof Person)
  		ps=(Person)obj;
  	else
  		return false;
  		
  	if(name.equals(ps.name) && age==ps.age)
  		return true;
  	else
  		return false;
  }
  
  public int hashCode()
  {
  	return name.hashCode()+age;
  }
		  	
}


class hashCodeDemo 
{
  public static void main(String args[]) 
  {
    Person p=new Person("John",20);
    Person q=new Person("John",20);
    Person r=new Person("John",18);
    
    if(p.equals(q))
	    System.out.println("p=q");
	else
    	System.out.println("p!=q");
    if(p.equals(r))
	    System.out.println("p=r");
	else
    	System.out.println("p!=r");
    System.out.println();
    	
    if(p.hashCode()==q.hashCode())
	    System.out.println("p.hashCode=q.hashCode");
	else
    	System.out.println("p.hashCode!=q.hashCode");
    if(p.equals(r))
	    System.out.println("p.hashCode=r.hashCode");
	else
    	System.out.println("p.hashCode!=r.hashCode");
    System.out.println();
    
	Hashtable h=new Hashtable();

	h.put(p,new String("001"));
	h.put(q,new String("002"));
	h.put(r,new String("003"));
	System.out.println(h);
	System.out.println();
	
	String num=(String)h.get(new Person("John",20));
	System.out.println("John,20的学号是"+num);
	System.out.println();
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?