var Map = function(){ this.map = new Object(); }; Map.prototype = { put : function(key, value){ this.map[key] = value; }, get : function(key){ return this.map[key]; }, containsKey : function(key){ return key in this.map; }, containsValue : function(value){ for(var prop in this.map){ if(this.map[prop] == value) return true; } return false; }, isEmpty : function(key){ return (this.size() == 0); }, clear : function(key){ delete this.map[key]; }, clearAll : function(){ for(var prop in this.map){ delete this.map[prop]; } }, remove : function(key){ delete this.map[key]; }, keys : function(){ var keys = new Array(); for(var prop in this.map){ keys.push(prop); } return keys; }, values : function(){ var values = new Array(); for(var prop in this.map){ values.push(this.map[prop]); } return values; }, size : function(){ var count = 0; for (var prop in this.map) { count++; } return count; } }; function ArrayList() { this.array = new Array(); this.add = function(obj){ this.array[this.array.length] = obj; } this.iterator = function (){ return new Iterator(this) } this.length = function (){ return this.array.length; } this.get = function (index){ return this.array[index]; } this.addAll = function (obj) { if (obj instanceof Array){ for (var i=0;i