有这样一个函数实现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 呢?谢谢 ~!
代码如下:
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 呢?谢谢 ~!
解决方案 »
- 请给一个 asp.net 从客户端导入excel到 sql server 的例子
- RowUpdating取不到最新值
- ASP.NET,求一高手写个判断中的判断,高手来。题目如下:
- 可能是很简单的问题~~~~~~~~~~~~~
- 如何在aspx中读取session的值
- 刚辞去了一份在工厂做程序员的工作,不知是错是对
- 用c#导出的excel文件,再把其作为一个数据源读取里面的记录出错,怎么办?
- http://www.qq166.com/vip.htm?qq=998825,这个是病毒地址吗?
- 使用xlst可以模糊搜索xml文件里的数据吗。
- AspxOS.Com超大型论坛精品下载
- 怎样获得两个日期的相差天数?
- 在ASP.NET中,我的imagebutton按扭为什么不能触了onclick事件
用下面的遍历这个hashtable
for (var i in hashtable) {
if (hashtable[i] != null) }
for(int i =0 ; i < hashTable.count ; i ++)
{
}
试一试
Iterator it=hr.keySet().Iterator();
while(it.hasNext()){
System.out.println(hr.get(it.next()));
}
{
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); 这个值是存在的 但是上面为假
{
if (hashtable[i] != null)
{
var d = hashtable[i] ; 这里是个函数好像 我看d 值是{...} 谁能帮帮我
if(hashtable[i] == 我的value值)
{
...
}
}
}
{
var exists = false;
for (var i in this.hashtable)
{
if (i == key && this.hashtable[i] != null)
{
exists = true;
break;
}
}
return exists;
}"