龙须面

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 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  木子小黑  阅读(199)  评论(0编辑  收藏  举报