您的位置:首页 > 编程语言 > Java开发

自己参考jdk和hashSet写的hashTable(JAVA实现)

2010-07-30 16:11 495 查看
自己写的,哈哈,只有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")));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: