大家帮忙看看这个 谢谢!
有这样一个函数实现hashTable 功能
代码如下:
function Hashtable()
{
this.clear = hashtable_clear;
this.containsKey = hashtable_containsKey;
this.containsValue = hashtable_containsValue;
this.get = hashtable_get;
this.isEmpty = hashtable_isEmpty;
this.keys = hashtable_keys;
this.put = hashtable_put;
this.remove = hashtable_remove;
this.size = hashtable_size;
this.toString = hashtable_toString;
this.values = hashtable_values;
this.hashtable = new Array();
}
//清除 hashtable
function hashtable_clear()
{
this.hashtable = new Array();
}
//是否包括某个key值
function hashtable_containsKey(key)
{
var exists = false;
for (var i in this.hashtable)
{
if (i == key && this.hashtable[i] != null)
{
exists = true;
break;
}
}
return exists;
}
//是否包括某个value值
function hashtable_containsValue(value)
{
var contains = false;
if (value != null)
{
for (var i in this.hashtable)
{
if (this.hashtable[i] == value)
{
contains = true;
break;
}
}
}
return contains;
}
//获取某个key对应的value值
function hashtable_get(key)
{
return this.hashtable[key];
}
function hashtable_isEmpty()
{
return (parseInt(this.size()) == 0) ? true : false;
}
function hashtable_keys()
{
var keys = new Array();
for (var i in this.hashtable)
{
if (this.hashtable[i] != null)
keys.push(i);
}
return keys;
}
function hashtable_put(key, value){
if (key == null || value == null) {
throw "NullPointerException {" + key + "},{" + value + "}";
}else{
this.hashtable[key] = value;
}
}
function hashtable_remove(key){
var rtn = this.hashtable[key];
this.hashtable[key] = null;
return rtn;
}
function hashtable_size(){
var size = 0;
for (var i in this.hashtable) {
if (this.hashtable[i] != null)
size ++;
}
return size;
}
function hashtable_toString(){
var result = "";
for (var i in this.hashtable)
{
if (this.hashtable[i] != null)
result += "{" + i + "},{" + this.hashtable[i] + "}\n";
}
return result;
}
function hashtable_values(){
var values = new Array();
for (var i in this.hashtable) {
if (this.hashtable[i] != null)
values.push(this.hashtable[i]);
}
return values;
}
我现在用这个 hashTable 加一些东西
如:
var hashtable = new Hashtable();
hashtable.put("1","test");
这样没问题 可以加进入
var temp = hashtable.get("1"); 是有值的 "test"
但是一个值好说 取出即可。
我现在在hashtable 中加入多个值。
我现在想遍历这个hashtable
这里就有问题了 ,进不了 for循环,
for(var i= 0; i < hashtable.size;i++)
{
//TODO:...
}
我查看 var t = parseInt(hashtable.size); 这个t 是NaN ,是无效的数值型。
我该怎么遍历这个hashtable 呢?谢谢 ~!