package com.donaldy.basic; /** * Created by donal on 2017/3/7. */ public class ArrayList implements List { private int size = 0; private final int MAXNSIZE = 100; private Object[] elementData = new Object[MAXNSIZE]; public void add(Object o){ ensureCupacity(size + 1); elementData[size++] = o; } public void add(int index, Object o){ ensureCupacity(size + 1); System.arraycopy(elementData, index, elementData, index + 1, size - index); elementData[index] = o; size++; } private void ensureCupacity(int capacitySize){ if (capacitySize >= MAXNSIZE) throw new RuntimeException("capacitySize : " + capacitySize); } public void clear() { for (int i = 0 ; i < size() ; ++ i) elementData[i] = null; } public Object get(int index){ if (index >= MAXNSIZE || index < 0) throw new RuntimeException(); return elementData[index]; } public Object remove(int index){ ensureCupacity(index); Object oldElem = elementData[index]; System.arraycopy(elementData, index + 1, elementData, index, size - index); elementData[size--] = null; return oldElem; } public int size(){ return size; } }