package com.sl.test20170221;
import java.util.Arrays;
public class ArrayList implements List{
private int size = 0;
private Object[] elementData = new Object[100];
@Override
public void add(Object o) {
grow(elementData);
elementData[size] = o;
}
@Override
public void add(int index, Object o) {
grow(elementData);
for(int i = size - 1;i >= index;i--){
elementData[i+1] = elementData[i];
}
elementData[index] = o;
}
@Override
public Object get(int index) {
return elementData[index];
}
@Override
public Object remove(int index) {
size--;
for(int i = index;i < size;i++){
elementData[i] = elementData[i+1];
}
elementData[size] = null;
return elementData;
}
@Override
public int size() {
return size;
}
private void grow(Object[] elementData){
size++;
if(size >= elementData.length){
int newSize = elementData.length + 100;
elementData = Arrays.copyOf(elementData, newSize);
}
}
}