package com.coding.basic;
public class ArrayList implements List {
private int size = 0;
private Object[] elementData = new Object[100];
private int stepLength = 50;
public void add(Object o){
if(size > elementData.length)
{
Object[] elementDataNew = new Object[elementData.length + stepLength];
System.arraycopy(elementData, 0, elementDataNew, 0, elementData.length);
elementData = elementDataNew;
}
elementData[size] = o;
size++;
}
public void add(int index, Object o){
if(size > elementData.length)
{
Object[] elementDataNew = new Object[elementData.length + stepLength];
System.arraycopy(elementData, 0, elementDataNew, 0, elementData.length);
elementData = elementDataNew;
}
System.arraycopy(elementData, index, elementData, index+1, size-index+1);
elementData[index] = o;
size++;
}
public Object get(int index){
return elementData[index];
}
public Object remove(int index){
Object obj = elementData[index];
System.arraycopy(elementData, index+1, elementData, index, size-index-1);
size--;
return obj;
}
public int size(){
return size;
}
public Iterator iterator(){
return null;
}
public String toString()
{
StringBuffer sb = new StringBuffer();
for(int i=0;i<size;i++)
{
if(i!=0)
{
sb.append(",");
}
sb.append(elementData[i]);
}
return sb.toString();
}
}