package com.coding.basic; import java.util.Arrays; public class ArrayList implements List{ private int size = 0; private Object[] elementData; public ArrayList(int initialCapacity){ elementData = new Object[initialCapacity]; } public ArrayList(){ elementData = new Object[10]; } public void ensureCapacity(int minCapacity){ int oldCapacity = elementData.length; if(minCapacity > oldCapacity){ Object[] oldData = elementData; int newCapacity = (oldCapacity * 3) / 2 + 1; if(minCapacity > newCapacity){ newCapacity = minCapacity; } elementData = Arrays.copyOf(elementData, newCapacity); } } public void add(Object o){ ensureCapacity(size + 1); elementData[size] = o; size++; } public void add(int index, Object o){ ensureCapacity(size + 1); for(int i = size-1; i >= index; i--){ elementData[i+1] = elementData[i]; } elementData[index] = o; size++; } public Object get(int index){ if(index > size-1){ return null; }else{ return elementData[index]; } } public Object remove(int index){ if(index > size-1){ return null; }else{ Object obj = elementData[index]; for(int i=index; i<size-1; i++){ elementData[index] = elementData[index+1]; } size--; return obj; } } public int size(){ return size; } public Iterator iterator(){ return null; } }