自己写的,哈哈,只有SET和PUT,没有做设置初始化筒数目和自增长,呵呵,做着完的,还不错,哈哈(转贴请注明来字阿飞这,呵呵) package javaHASH; import java.util.Hashtable; class Node2 { Node2 next; Object valueObject; Object keyObject; public Node2() { } } public class MyHashTable { int hashTbSize= 6; Node2[] hashNodes= new Node2[hashTbSize]; public Object put(Object key,Object value) { int index = key.hashCode()%hashTbSize; for (Node2 tempNode2 = hashNodes[index]; tempNode2!=null ; tempNode2= tempNode2.next) { if (tempNode2.hashCode() == key.hashCode() && (tempNode2.equals(key))) { //完全一样。。。覆盖吧。。。 Object oldValue = tempNode2.valueObject; tempNode2.valueObject = value; return oldValue; } } Node2 newNode2 = new Node2(); newNode2.keyObject = key; newNode2.valueObject = value; newNode2.next = hashNodes[index]; hashNodes[index] = newNode2; return value; } public Object get(Object key) { int index = key.hashCode()%hashTbSize; for (Node2 tempNode2 = hashNodes[index]; tempNode2 != null; tempNode2 = tempNode2.next) { if (tempNode2.keyObject.equals(key)) { return tempNode2.valueObject; } } return null; } public static void main(String args[]) { MyHashTable aHashtable = new MyHashTable(); aHashtable.put("a","aa"); aHashtable.put("t","ab"); System.out.println((String)(aHashtable.get("t"))); } }