function StringBuffer() { 
	this.buffer = []; 

	this.append = function(string) {
		this.buffer.push(string);
		return this;
	}
	this.toString = function(delim){
		return this.buffer.join(delim||'');
	}
	this.length = function() {
		return this.buffer.length;
	}
	this.clear = function(){
		this.buffer = [];
		return this;
	}
};

function Stack() { 
	this.array = new Array();

	this.push = function(string) {
		this.array.push(string);
		return this;
	}
	this.pop = function() {
		this.array.pop();
	}
	this.size = function() {
		return this.array.length;
	}
	this.clear = function(){
		this.array = new Array();
		return this;
	}
	this.empty = function(){
		return size() == 0;
	}
};

function ArrayList() {
	this.array = new Array();

	this.add = function(obj) {
		this.array[this.array.length] = obj;
	}
	this.remove = function(obj) {
		if (index >= size) {
			this.array[this.array.length] = obj;
		}else{
			return null;
		}
	}
	
	this.size = function() {
		return this.array.length;
	}
	this.get = function(index) {
		return this.array[index];
	}
	this.toArray = function() {
		return this.array;
	}
	/*
	this.addAll = function(obj) {
		if (obj instanceof Array){
			for (var i=0;i<obj.length;i++) {
				this.add(obj[i]);
		  }
		} else if (obj instanceof ArrayList) {
			for (var i=0;i<obj.length();i++) {
				this.add(obj.get(i));
			}
		}
	}
	this.iterator = function() {
		return new Iterator(this)
	}
	*/
	this.isEmpty = function(){
		return size() == 0;
	}
};

/*
function Iterator (arrayList){
  this.arrayList;
  this.index = 0;

  this.hasNext = function (){
	return this.index < this.arrayList.size();
  }
  this.next = function() {
      return this.arrayList.get(index++);
  }
};
*/