实现ArrayList
public void add(int i, Object e) { if(size == elementData.length){ grow(); } //后移i后面的元素,给i腾出位置 for(int j = size; j > i; j--){ elementData[j] = elementData[j-1]; } elementData[i] =e; size ++; }
//将数据元素e插入到元素 object 之前 @Override public int addBefore(Object object, Object e) { int temp = 0; if(size == elementData.length){ grow(); } for(int k = size ;k > 0; k--){ if(elementData[k - 1].equals(object)){ temp = k - 1; // return temp; } if(temp < k ) elementData[k] = elementData[k - 1]; } elementData[temp] = e; size ++; return 1; // for(int k = size - 1 ;k >= 0; k--){ // if(elementData[k].equals(object)){ // return true; // } // } }
public void grow(){ // Object [] newArr = new Object[elementData.length * 2]; // for(int i=0;i<size;i++){ // newArr[i] = elementData[i]; // } // elementData = newArr; //以上可以简写为 elementData = Arrays.copyOf(elementData, elementData.length * 2); }
天知道我写对这两个方法花了多少时间!!!!!!!!!!
虽然还没考虑完善addBefore()方法输入不存在的元素存在的问题。