ArrayList

底層是數組數組

/**
 * Created by yaming 
 * 基於數組的ArrayList
 */
public class MyArrayList {
    private Object[] element;
    private int size;

    /**
     * 默認16
     */
    public MyArrayList() {
        //初始化默認長度16
        element=new Object[16];
        size=0;
    }

    /**
     * 初始化 自定義長度
     * @param length
     */
    public MyArrayList(int length){
        element=new Object[length];
        size=0;
    }

    public MyArrayList(Object[] element, int size) {
        this.element =element;
        this.size = 0;
    }

    public int size(){
        return size;
    }
    public Object add(Object obj){
        //1.先判斷容量夠不夠
        if(size==element.length){
            Object[] oldElement=element;
            //默認擴容1.5倍
            int newCapacity=element.length*3/2;
            //新的空數組
            element=new Object[newCapacity];
            //數據複製
            System.arraycopy(oldElement,0,element,0,oldElement.length);
        }
        element[size++]=obj;
        return true;
    }
    public Object get(int index){
        return element[index];
    }

    public Object remove(int index){
        Object obj=get(index);
        for(int i=index;i<size-1;i++){
            element[index]=element[index+1];
        }
        size--;
        return obj;
    }

    public void clearAll(){
        element=new Object[16];
        size=0;
    }
}
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息