package tong.java.one; import java.util.Arrays; /** * 自定义ArrayList * * @author tong * */ public class MyArrayList { private Object[] datas = new Object[10]; private int size; // 默认在集合末尾添加元素 public void add(Object o) { if (datas[0] == null) { datas[0] = o; } else { if (size < datas.length) { datas[size] = o; } else { datas = grow(5); datas[size] = o; } } size++; } // 指定索引处添加元素 public void add(int index, Object o) { if (index > size - 1) { throw new ArrayIndexOutOfBoundsException(); } else { if (size + 1 > datas.length) { datas = grow(5); } datas[index] = o; for (int i = index + 1; i < size - 1; i++) { datas[i] = datas[i + 1]; } size++; } } // 获取指定索引处的的元素 public Object get(int index) { if (index > size - 1) { throw new ArrayIndexOutOfBoundsException(); } else { return datas[index]; } } // 删除指定索引处的元素 public Object remove(int index) { if (index > size - 1) { throw new ArrayIndexOutOfBoundsException(); } else { Object removeData = datas[index]; for (int i = index; i < size - 1; i++) { datas[index] = datas[index + 1]; } size--; return removeData; } } public int size() { return size; } private Object[] grow(int length) { return Arrays.copyOf(datas, datas.length + length); } }