}
ArrayList.prototype.add=function(){
var args=arguments;
if(args.length==1){
this.buffer[this.length++]=args[0];
return true;
}
else if(args.length==2){
var index=args[0];
var obj=args[1];
if(index>=0 && index<=this.length){
for(var i=this.length;i>index;i--)
this.buffer[i]=this.buffer[i-1];
this.buffer[i]=obj;
this.length+=1;
return true;
}
}
return false;
}
ArrayList.prototype.indexOf=function(obj){
for(var i=0;i<this.length;i++){
if(this.buffer[i].equals(obj)) return i;
}
return -1;
}
ArrayList.prototype.lastIndexOf=function(obj){
for(var i=this.length-1;i>=0;i--){
if(this.buffer[i].equals(obj)) return i;
}
return -1;
}
ArrayList.prototype.contains=function(obj){
return this.indexOf(obj)!=-1;
}
ArrayList.prototype.equals=function(obj){
if(this.size()!=obj.size()) return false;
for(var i=0;i<this.length;i++){
if(!obj.get(i).equals(this.buffer[i])) return false;
}
return true;
}
ArrayList.prototype.addAll=function(list){
var mod=false;
for(var it=list.iterator();it.hasNext();){
var v=it.next();
if(this.add(v)) mod=true;
}
return mod;
}
ArrayList.prototype.containsAll=function(list){
for(var i=0;i<list.size();i++){
if(!this.contains(list.get(i))) return false;
}
return true;
}
ArrayList.prototype.removeAll=function(list){
for(var i=0;i<list.size();i++){
this.remove(this.indexOf(list.get(i)));
}
}
ArrayList.prototype.retainAll=function(list){
for(var i=this.length-1;i>=0;i--){
if(!list.contains(this.buffer[i])){
this.remove(i);
}
}
}
ArrayList.prototype.subList=function(begin,end){
if(begin<0) begin=0;
if(end>this.length) end=this.length;
var newsize=end-begin;
var newbuffer=new Array();
for(var i=0;i<newsize;i++){
newbuffer[i]=this.buffer[begin+i];
}
return new ArrayList(newbuffer);
}
ArrayList.prototype.set=function(index,obj){
if(index>=0 && index<this.length){
temp=this.buffer[index];
this.buffer[index]=obj;
return temp;
}
}
ArrayList.prototype.iterator=function iterator(){
return new ListIterator(this.buffer,this.length);
}
/*****************************
SortedList extends ArrayList
*****************************/
function SortedList(){
this.com=null;
}
SortedList.prototype=new ArrayList();










