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++); } }; */