public class TestArrayList { private Object[] elementDate; private int size; private static final int DEFALT_CAPACITY=10; public TestArrayList() { elementDate=new Object[DEFALT_CAPACITY]; } public TestArrayList(int capacity) { if(capacity<0) { throw new RuntimeException(“容器的容量不能为负数”); }else if(capacity== 0) { elementDate=new Object[DEFALT_CAPACITY]; }else { elementDate=new Object[capacity]; } }
public void add(Object element) { if(size== elementDate.length) { Object[] newArray=new Object[elementDate.length+(elementDate.length >>1)]; System.arraycopy(elementDate, 0, newArray, 0, elementDate.length); elementDate=newArray; } elementDate[size++]=element; } public void remove(Object element) { //element 将它和所有元素挨个比较,获得第一个比较为true的,返回 for(int i=0;i<size;i++) { if(element.equals(get(i))) { getRemove(i); }//容器中所有的比较操作都是用的equals而不是== } } public void removeOdd() { //将错就错写出的删除奇数项的方法 for(int i=0;i<size;i++) { getRemove(i); } } public void removeOOd() { //将错就错写出来的删除偶数项的方法 for(int i=0;i<size;i++) { getRemove(i+1); } } public void getRemove(int index) { int numMove=elementDate.length-index-1; if(numMove>0){ System.arraycopy(elementDate, index+1, elementDate, index, numMove); } elementDate[--size]=null; } public Object get(int index) { cheakRange(index); Object o=elementDate[index]; return o; } public int size() { return size; } public boolean isEmpty() { return size==0 ?false:true; } public void set(Object element,int index) { cheakRange(index); elementDate[index]=element; } public void cheakRange(int index) { if(index<0||index>size-1) { throw new RuntimeException("数组越界!!!错误!!!"); } } public String toString() { StringBuilder sb=new StringBuilder("["); for(int i=0;i<size;i++) { sb.append(elementDate[i]+","); } sb.setCharAt(sb.length()-1,']'); return sb.toString(); } public static void main(String[] args) { TestArrayList t=new TestArrayList(); for(int i=0;i<40;i++) { t.add("cao"+i); } System.out.println(t); t.remove(""); System.out.println(t); }}