public class ArrayList { /*通过数组模拟ArrayList结构,完成容器的创建、添加、修改、删除,以及可以 遍历自定义的结构,提示可以ArrayList源码。 */ int n=2; int size=-1; Object []array; public ArrayList(){ array=new Object[n]; } public static void main(String[] args) { ArrayList arrayList=new ArrayList(); arrayList.add("f"); arrayList.add("a"); arrayList.add("w"); for (int i = 0; i <arrayList.size+1 ; i++) { System.out.println(arrayList.getarray(i)); } System.out.println("------------"); arrayList.add(2, "2"); // 越界,报错 arrayList.add(5, "5"); for (int i = 0; i <arrayList.size ; i++) { System.out.println(arrayList.getarray(i)); } System.out.println("--------------"); arrayList.remove(2); arrayList.remove("f"); for (int i = 0; i <arrayList.size ; i++) { System.out.println(arrayList.getarray(i)); } arrayList.set(1, "10"); System.out.println("--------------"); for (int i = 0; i <arrayList.size ; i++) { System.out.println(arrayList.getarray(i)); } } public void enlarge(){ n=n*2+1; Object [] newarray=new Object[n]; System.arraycopy(array, 0, newarray, 0, array.length); array=newarray; } public Object getarray(int i){ return array[i]; } public int add(int index,Object obj){ if(index>n-1){ enlarge(); } if(index>size&&index<n){ System.out.println("java.lang.IndexOutOfBoundsException"); } for (int i=index; i <=size; i++) { array[index+1]=array[index]; } array[index]=obj; size++; return size; } public int add(Object obj){ if(size>=n-1){ enlarge(); } array[size+1]=obj; size++; return size; } public void remove(int index){ for (int i = index; i<size; i++) { array[i]=array[i+1]; } array[size]=null; size--; } public void remove(Object obj){ for (int i = 0; i <=size ; i++) { if(obj.equals(getarray(i))==true){ remove(i); } } } public void set(int index,Object obj){ array[index]=obj; }
通过数组模拟ArrayList结构,完成容器的创建、添加、修改、删除,以及可以 遍历自定义的结构,
最新推荐文章于 2021-12-07 22:05:03 发布