package DataStruct;
import java.util.Arrays;
import java.util.Objects;
public class ArrayList<I> implements List {
private int size = 0;
private Object[] elementData = new Object[100];
private void ensureCapacity(int minCapacity) {
if(minCapacity > elementData.length) {
Object[] temp = elementData;
int newCapacity = elementData.length * 3 / 2 + 1;
Object[] newArray = new Object[newCapacity];
System.arraycopy(temp, 0, newArray, 0, elementData.length);
elementData = newArray;
}
}
public void add(Object o){
ensureCapacity(size + 1);
elementData[size++] = o;
}
public void add(int index, Object o){
ensureCapacity(size + 1);
System.arraycopy(elementData, index, elementData, index + 1, size - index);
elementData[index] = o;
size++;
}
public Object get(int index){
if(index >= size || index < 0) {
return null;
}
return elementData[index];
}
public Object remove(int index){
if(index < 0 || index >= size) {
return null;
}
Object obj = elementData[index];
System.arraycopy(elementData, index + 1, elementData, index, size - index - 1);
elementData[--size] = null;
return obj;
}
public int size(){
return size;
}
public Iterator iterator(){
return null;
}
}