function ArrayList() {
	this.__elements__ = [];
}
ArrayList.prototype.add = function(E) {
	this.__elements__[this.__elements__.length] = E;
}
ArrayList.prototype.size = function() {
	return this.__elements__.length;
}
ArrayList.prototype.get = function(i) {
	return this.__elements__[i];
}
ArrayList.prototype.toString = function() {
	return this.__elements__.join("");
}
ArrayList.prototype.join = function(c) {
	return this.__elements__.join(c);
}

function ArrayMap() {
	this.__elements__= new Object();
	this.__index__= new Object();
}
ArrayMap.prototype.put = function(K,V) {
	this.__elements__[K] = V;
}
ArrayMap.prototype.get = function(K) {
	return this.__elements__[K];
}
ArrayMap.prototype.size = function() {
	var count = 0;
	for(var value in this.__elements__) { 
		count++;
	}
	return count;
}
ArrayMap.prototype.elements = function() {
	return this.__elements__;
}

ArrayMap.prototype.toString = function() {
	return "ArrayMap(" + this.size() + ")";
}