大家帮忙看看这个 谢谢!

guoweijun394 2007-12-25 04:16:27
有这样一个函数实现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 呢?谢谢 ~!



...全文
172 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yousite1 2007-12-25
  • 打赏
  • 举报
回复
楼上的用法我想应该是可以的,只是你用到了 this.size 变量,但在进行添加和移除清空时始终未对这个变量进行加一减一和清零的操作,所以元素自然在转成整型时为NaN型了,建议你仔细检查一下.对THIS.SIZE变量进行操作的地方!
guoweijun394 2007-12-25
  • 打赏
  • 举报
回复
有谁能帮我看下吗 ?谢谢了
guoweijun394 2007-12-25
  • 打赏
  • 举报
回复
hashtable[i].ToString() 是以下的函数 居然 ,该怎么遍历呢

"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;
}"
guoweijun394 2007-12-25
  • 打赏
  • 举报
回复
for (var i in hashtable)
{
if (hashtable[i] != null)
{
var d = hashtable[i] ; 这里是个函数好像 我看d 值是{...} 谁能帮帮我
if(hashtable[i] == 我的value值)
{
...
}
}
}
guoweijun394 2007-12-25
  • 打赏
  • 举报
回复
for (var i in hashtable.keys)
{
if (hashtable[i] != null)
{
if(hashtable[i] == 我的value值)
{
。。。。
}
}

}
不进这个循环


for (var i in hashtable)
{
if (hashtable[i] != null)
{
if(hashtable[i] == 我的value值) //这样可以进去 但是这里为假
{
...
}
}
}

var 我的value值= hashtable.get(某个KEY); 这个值是存在的 但是上面为假
guoweijun394 2007-12-25
  • 打赏
  • 举报
回复
也就是遍历 这个KEYS
guoweijun394 2007-12-25
  • 打赏
  • 举报
回复
TO:TIAN_930 这个是JS 的

我想得到某个KEY对应的Value
Tian_930 2007-12-25
  • 打赏
  • 举报
回复
Hashtable ht = new Hashtable();
Iterator it=hr.keySet().Iterator();
while(it.hasNext()){
System.out.println(hr.get(it.next()));
}
Tian_930 2007-12-25
  • 打赏
  • 举报
回复

for(int i =0 ; i < hashTable.count ; i ++)
{
}
试一试
guoweijun394 2007-12-25
  • 打赏
  • 举报
回复
试下~
guoweijun394 2007-12-25
  • 打赏
  • 举报
回复
自己顶下 帮我看看 谢谢
mingxuan3000 2007-12-25
  • 打赏
  • 举报
回复

用下面的遍历这个hashtable
for (var i in hashtable) {
if (hashtable[i] != null)

}
guoweijun394 2007-12-25
  • 打赏
  • 举报
回复
hashtable.size 返回的是function()么? 还是object ?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧