package collections; /** * * @author Mahone Wu * @data:2017-03-10 * @description:ArrayList的自我实现,暂时没有自动扩展 * @version:1.0.0 */ public class ArrayList implements List { // 数组存储数据大小 private int size = 0; int cap = 5; // 数组 private Object[] elementData = new Object[cap]; /** * 新增元素 */ public void add(Object o) { elementData[size] = o; size++; } /** * 指定位置新增数据 */ public void add(int index, Object o) { // 保存现在该位置有的元素 Object temp = elementData[index]; // 如果当前存放数据等于初始化数组大小,则数组需要进行扩容操作 if (elementData.length == size) { // TODO } // 如果没有超过大小,则把从插入开始点的数据都往后移一位 for (int i = size; i > index; i--) { elementData[i] = elementData[i - 1]; } // 将现在赋值的数据放到该位置 elementData[index] = o; size++; } /** * 获取数据 */ public Object get(int index) { if (index > elementData.length) { return null; } return elementData[index]; } // 返回要删除的数据 public Object remove(int index) { // 要被删除的数据 Object data = elementData[index]; for (int i = index; i < size; i++) { elementData[i] = elementData[i + 1]; } size--; return data; } public int size() { return size; } // TODO /** * 循环输出 * * @return */ public Iterator iterator() { int current = 0; if (hasNext(current)) { // return elementData[current+1]; } return null; } public boolean hasNext(int current) { return current < size(); } }