Hashtable

Hashtable不仅可以动态存储一系列的对象,而且对存储的每一个对象(值)都要安排另一个对象(关键字)与之相关联。
 

向Hashtable中存储值的方法:


Hashtable no=new Hashtable();
no.put(关键字(not null not iterance),值(not null));
no.put("one",new Integer(1));
no.put("two",new Integer(2));


从Hashtable中检索出值
nteber n=(Integer)no.get("two");
if(n!=null)
{
 System.out.println("two="+n);
}

实例:
package test;

public class MyKey {
 
 private String name=null;
 private int age=0;
 public MyKey(String name, int age) {
  this.name=name;
  this.age=age;
 }
 //由get调用
 public boolean equals(Object obj)
 {
  if(obj instanceof MyKey)
  {
   MyKey objTemp=(MyKey)obj;
   if(name.equals(objTemp.name)&&age==objTemp.age)
   {
    return true;
   }
   else
    return false;
  }
  else
  return false;
  
 }
 public int hashCode()
 {
  return name.hashCode()+age;
  
 }
 public String toString()
 {
  return name+"||"+age;
 }
}

 

package test;

import java.util.Enumeration;
import java.util.Hashtable;

public class Hashtabletest {

 @SuppressWarnings("unchecked")
 public static void main(String[] args) {
  Hashtable numbers =new Hashtable();
  numbers.put(new MyKey("zhangsan",18),new Integer(1));
  numbers.put(new MyKey("lisi",15), new Integer(2));
  numbers.put(new MyKey("wangwu",12), new Integer(3));
  Enumeration e= numbers.keys();
  while(e.hasMoreElements())
  {
   MyKey key=(MyKey)e.nextElement();
   System.out.print(key+"=");
   System.out.println(numbers.get(key));
  }
  System.out.print(numbers.get(new MyKey("zhangsan",18)));
 }

}