package com.coding.basic; import java.util.Arrays; public class ArrayList implements List { private int size = 0; private Object[] elementData = new Object[7]; public void add(Object o){ if(size>elementData.length-1){ ensureCapacity(size); } elementData[size++] = o; } public void add(int index, Object o){ System.out.println(elementData.length+" length"); System.out.println(size+" size"); size++; if(index<0||index>size||index>Integer.MAX_VALUE){ System.out.println("add 位置输入错误,请输入合理的位置"); return; } if(size>elementData.length-1){ ensureCapacity(size); } System.arraycopy(elementData,index,elementData,index+1,size-index-1); elementData[index] = o; } public Object get(int index){ if(index<0||index>size-1){ System.out.println("get 位置输入错误,请输入合理的位置"); return null; } return elementData[index]; } public Object remove(int index){ if(index<0||index>size-1){ System.out.println("remove 位置输入错误,请输入合理的位置"); return false; } System.arraycopy(elementData,index+1,elementData,index,size-index-1); elementData[--size]=null; return true; } public int size(){ return size; } private void ensureCapacity(int nimCapacity){ int oldCapacity = elementData.length; int newCapacity = oldCapacity+(oldCapacity/2+1); if(newCapacity < nimCapacity){ newCapacity = nimCapacity; } if(newCapacity>Integer.MAX_VALUE){ newCapacity = Integer.MAX_VALUE; } elementData = Arrays.copyOf(elementData,newCapacity); } public static void main(String[] args) { ArrayList list=new ArrayList(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(2,10); list.remove(3); for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } //System.out.println("temp"+list.toString()); //int x=2; //String[] l = {"a","d","v","cd","s"}; //System.out.println(l[x--]); } }