The jQuery hashtable

One of the things missing in javascript is a hashtable implementation. So i decieded to make one. Along came my very good friend jQuery, the greatest and most powerfull javascript extention ever made.

			var ht = new jQuery.Hashtable();
			ht.add("item1","hello");
			ht.add("item2","hello again");
			var val = ht.get("item1");
			ht.remove("item2");
		

Its as simple at that. I know that is no realy need for jquery in this hashtable, but i thought it would be fun make it an extension.

Full source download
			/*
		jQuery Browser Plugin
			* Version 1.1
			* 2009-03-09
			* URL: http://www.homeofthehip.com
			* Description: jQuery hashtable extension.
			* Author: Magnus Dunker
			* Copyright: Copyright (c) 2009 Magnus Dunker. Use it anyway you like
			
			*/
		jQuery.Hashtable  = function()
		{ 
			this.items=new Array();
			this.itemsCount=0;
			this.add = function(key,value)
			{
				if(!this.containsKey(key))
				{
					this.items[key]=value;
					this.itemsCount++;
				}
				else
					throw "key '"+key+"' allready exists."
			}
			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--;
				}
				else
					throw "key '"+key+"' does not exists."
			}
			this.containsKey= function(key)
			{
				return typeof(this.items[key])!="undefined";
			}
			this.containsValue = function containsValue(value)
			{
				for (var item in this.items)
				{
					if(this.items[item]==value)
						return true;
				}
				return false;
			}
			this.contains = function(keyOrValue)
			{
				return this.containsKey(keyOrValue) || this.containsValue(keyOrValue);
			}
			this.clear = function()
			{
				this.items=new Array();
				itemsCount=0;
			}
			this.size = function()
			{
				return this.itemsCount;
			}
			this.isEmpty = function()
			{
				return this.size()==0;
			}
		};