Java数据结构-ArrayList

来源:互联网 发布:江苏软件行业协会 编辑:程序博客网 时间:2024/05/17 06:52

内部结构图

这里写图片描述

实现原理

ArrayList内部维护一个Object[],Object初始化大小是10,add或remove方法实际上是对数组元素的添加或者删除,

特点

由于添加和删除的时候涉及新数组的创建以及新老数组元素的复制和移动,所以添加删除教慢而取值时教快。

常用方法源码

add(E)

public boolean add(E e) {        ensureCapacityInternal(size + 1);  //判断是否扩充        elementData[size++] = e;//设置数组下一个元素        return true;    }

remove(int index)

public E remove(int index) {        rangeCheck(index);//判断下标是否越界        modCount++;        E oldValue = elementData(index);//取得数组中对应下标的值        int numMoved = size - index - 1;        if (numMoved > 0)            System.arraycopy(elementData, index+1, elementData, index, numMoved);//把移除下标后面的所有数组元素下标往前移动一位        elementData[--size] = null; //清空数组最后一个位置,以便GC        return oldValue;    }
0 0
原创粉丝点击