/* * �ó���Ϊ�Լ�ʵ��ArrayList * ArrayList�ײ�Ϊ����ʵ�֣��Ƕ�̬���� */ package com.firsthomework; public class MyArrayList { private int size=0; private int initialcapcity=10; private Object[] elements= null; public MyArrayList(){ this.elements=new Object[initialcapcity]; } public MyArrayList(int capcity){ this.elements = new Object[capcity]; } public void enlarge(){ initialcapcity*=2; Object[] tmpelements= new Object[initialcapcity]; System.arraycopy(elements, 0, tmpelements, 0,size); elements=tmpelements; } public void add(Object o){ if(o==null){ throw new RuntimeException("����Ϊ�գ�"); } if(size>initialcapcity){ enlarge(); } elements[size]=o; size++; } public Object get(int index){ if(index<0||index>size-1){ throw new IndexOutOfBoundsException("����Խ�磺"); } return elements[index]; } //ʵ��remove()������ɾ��λ�ã������Ԫ��Ҫǰ�ƣ�����ɾ��λ�õ�Ԫ�� public Object remove(int index){ Object oldValue=elements[index]; int eleMoved=size-index-1; //�ƶ���Ԫ�صĸ��� if(eleMoved>0){ System.arraycopy(elements, //ԭ���� index+1, //ԭ�������ʼλ�ã�ɾ��Ԫ�صĺ���һ��λ�ã� elements, //Ŀ������ index, //Ŀ���������ʼλ�� eleMoved);//�����ij��� } elements[size-1]=null; size--; return oldValue; } public boolean set(int index,Object o){ if(index<0||index>size-1){ throw new IndexOutOfBoundsException("����Խ��"); } elements[index]=o; return true; } //��дtoString()���� public String toString(){ StringBuffer sb=new StringBuffer(); sb.append("["); for(int i=0;i<size;i++){ Object o=elements[i]; sb.append(o); if(i<size-1){ sb.append(","); } } sb.append("]"); return sb.toString(); } public static void main(String[] args) { MyArrayList my=new MyArrayList(); my.add("hello"); my.add("world"); my.add("!"); my.add(1); my.add(2); my.add(3); System.out.println(my.get(1)); my.set(2, "oo"); System.out.println(my.get(2)); System.out.println("***"); System.out.println(my.remove(1)); System.out.println(my.remove(2)); System.out.println(my); } }