package com.coding.basic; import java.util.Arrays; public class ArrayList implements List { private int size = 0; private Object[] elementData = new Object[100]; private static final int GORW_CAPACITY = 10; public void add(Object o){ if (size<elementData.length) elementData[size++] = o; else { elementData = Arrays.copyOf(elementData, elementData.length+GORW_CAPACITY); elementData[size++] = o; } } public void add(int index, Object o){ checkIndex(index); System.arraycopy(elementData, index, elementData, index + 1, size - index); elementData[index] = o; } public Object get(int index){ checkIndex(index); return elementData[index]; } public Object remove(int index){ checkIndex(index); Object obj = elementData[index]; System.arraycopy(elementData, index+1, elementData, index, size - index-1); return obj; } public int size(){ return size; } public Iterator iterator(){ return null; } private void checkIndex(int index){ if (index>elementData.length) throw new IndexOutOfBoundsException(); } }