Hashtable的测试
1 import java.util.Enumeration; 2 import java.util.Hashtable; 3 4 class TT { 5 private String name = null; //name和age是作为键的 6 private Integer age = 0; 7 8 public TT(String name,int age) { //构造函数没有返回值 9 this.name = name; 10 this.age = age; 11 } 12 /* 13 * 要用对象作为键,就要重载equals和hashcode这两个方法,目的是使用get方法 14 */ 15 @Override 16 public boolean equals(Object obj) { 17 // TODO Auto-generated method stub 18 if((obj != null) && (obj instanceof TT)) { 19 TT objTemp = (TT)obj; 20 if((name.equals(objTemp.name)) && (age.equals(objTemp.age))) { 21 return true; 22 }else { 23 return false; 24 } 25 }else { 26 return false; 27 } 28 29 } 30 //这是get方法比较的重要依据,呵呵 31 @Override 32 public int hashCode() { 33 // TODO Auto-generated method stub 34 return name.hashCode() + age; 35 } 36 37 public String toString() { 38 return name + "--" + age; 39 } 40 41 } 42 public class HashTable { 43 public static void main(String[] args) { 44 Hashtable<TT,Integer> ht = new Hashtable<TT,Integer>(); 45 ht.put(new TT("张三",20),new Integer(1)); 46 ht.put(new TT("李四",18),new Integer(2)); 47 ht.put(new TT("王麻子",12),new Integer(3)); 48 49 System.out.println("取值"+ ht.get(new TT("李四",20))); 50 Enumeration<TT> keys = ht.keys(); 51 while(keys.hasMoreElements()) { 52 TT tt = (TT)keys.nextElement(); 53 System.out.println(tt); 54 System.out.println(ht.get(tt)); 55 } 56 System.out.println(ht.get(new TT("李四",18))); 57 } 58 }
posted on 2012-06-29 15:18 木子小黑 阅读(...) 评论(...) 编辑 收藏