Java数据结构总结(一)

2019-07-11  本文已影响0人  东邪Zzz

List (有序可重复)

List列表允许存储相同元素,插入元素和按照下标获取元素方便,具体实现有ArrayList,LinkedList和Vector

1. ArrayList

ArrayList继承AbstractList,实现了List<E>, RandomAccess, Cloneable, java.io.Serializable接口;


image.png

1.1构造方法

它的构造方法有三个:


image.png
image.png
image.png

第一个我们可以传入一个int值,来初始化我们ArrayList的初始容量,如:


image.png
第二个是我们不传入初始容量,它会为我们默认构造一个初始容量为10的数组
第三个我们可以传入一个列表

1.2相关方法

public void add(int index, E element) {
        rangeCheckForAdd(index);//检查index是否越界
        ensureCapacityInternal(size + 1);  // 确保容量
        System.arraycopy(elementData, index, elementData, index + 1,//将index以后的元素后移一个
                         size - index);
        elementData[index] = element;
        size++;
    }
    private void rangeCheckForAdd(int index) {
        if (index > size || index < 0)//元素可以添加在最后尾端
            throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
    }
    //本地的C/C++库方法,直接操纵内存,速度更快
    public static native void arraycopy(Object src,  int  srcPos,
                                        Object dest, int destPos,
                                        int length);
上一篇 下一篇

猜你喜欢

热点阅读