类似Java Hashtable的Js集合类

本文介绍了一种基于JavaScript实现的键值对集合类,包括添加、获取、删除元素等基本操作,并提供了contains、clear等实用方法。该实现有助于理解数据结构及其实现原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
* 键值对集合类
*
* @author: Johnson
* @version: Saturday July 09th, 2011
**/
Hashtable = function(){

	this.items = new Array();
	this.itemsCount = 0;

	this.containsKey = function(key) {
		return typeof(this.items[key]) != "undefined";
	}

	this.put = function(key, value) {
		if (!this.containsKey(key)) {
			this.items[key] = value;
			this.itemsCount += 1;
		}
	}	

	this.get = function(key) {
		if (this.containsKey(key)) {
			return this.items[key];
		} else {
			return null;
		}
	}	

	this.remove = function(key) {
		if (this.containsKey(key)) {
			delete this.items[key];
			this.itemsCount -= 1;
		}
	}

	this.containsValue = function(value) {
		for (var key in this.items) {
			if (this.items[key] == value) {
				return true;
			}
		}
		return false;
	}

	this.contains = function(val) {
		return this.containsKey(val) || this.containsValue(val);
	}

	this.clear = function() {
		this.items = new Array();
		this.itemsCount = 0;
	}

	this.size = function() {
		return this.itemsCount;
	}

	this.isEmpty = function() {
		return this.size() == 0;
	}

	this.keys = function(){
		var keys = new Array();
		for (var key in this.items) {
			if ("remove" != key && "indexOf" != key) {
				keys.push(key);
			}
		}
		return keys;
	}

	this.values = function(){
		var values = new Array();
		for (var key in this.items) {
			if ("remove" != key && "indexOf" != key) {
				values.push(this.items[key]);
			}
		}
		return values;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值