interface MyIterator{ public boolean hasNext(); public Object next(); } public class ArrayList { /* public static void main(String[] d){ ArrayList p = new ArrayList(); p.add("asd");p.add("123");p.add("123");p.add("234");p.add("456"); p.remove(1); p.add(1, 345); MyIterator it = p.iterator(); while(it.hasNext()){ System.out.println(it.next().toString()); } } */ private int size = 0; private Object[] elementData = new Object[100]; public void add(Object o){ if(size >= elementData.length){//�������鳤�� Object[] tem = new Object[elementData.length*2]; for(int i=0;i<size;i++){ tem[i] = elementData[i]; } elementData = tem; } elementData[size] = o; size++; } public void add(int index, Object o){ if(size >= elementData.length){ Object[] tem = new Object[elementData.length*2]; for(int i=0;i<size;i++){ tem[i] = elementData[i]; } elementData = tem; } for(int i = index; i < size; i++){ elementData[i+1] = elementData[i]; } elementData[index] = o; size++; } public Object get(int index){ return elementData[index]; } public Object remove(int index){ if(index<0 || index >=size){ throw new IndexOutOfBoundsException(); } for(int i = index; i < size; i++){ elementData[i-1] = elementData[i]; } size--; return elementData[index]; } public int size(){ return size; } class MMIt implements MyIterator{ int loc = 0; public boolean hasNext() { if(loc>=size) return false; else return true; } public Object next() { ++loc; return elementData[loc-1]; } } public MyIterator iterator(){ return new MMIt(); } }