ArrayList动态扩容底层实现

ArrayList是一个动态数组,相当于顺序表

import java.util.Arrays;
public class ArrayList {
    private int maxSize;
    private int curNumber;
    private int arr[];
    public ArrayList(int maxSize){//初始长度
        this.maxSize = maxSize;
        arr = new int[maxSize];
    }
    public void add(int num){
        if(curNumber-maxSize>=0){
           int  newLength=maxSize+(maxSize>>1);
           arr= Arrays.copyOf(arr,newLength);
        }
        arr[curNumber++]=num;
    }
}

LinkedList底层是链表实现


因此,当要查询元素时,选用ArrayList较快

           当要添加删除元素时,选用LinkedList较快

猜你喜欢

转载自blog.csdn.net/ccccc1997/article/details/81270466