当前位置:   article > 正文

JavaArrayList_javaarraylist是

javaarraylist是

ArrayList 是 java 集合框架中常用的数据结构。继承自 AbstractList,实现了 List 接口。底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。

//创建ArrayList变量。
ArrayList<Integer> listInt = new ArrayList<>();
//这行代码表示创建一个ArrayList变量,里面存放的值是Integer类型的。
//如果想存放其它类型的值,如字符串类型,则创建ArrayList变量的代码为

ArrayList<String> listStr = new ArrayList<>();
//如果没有声明ArrayList的大小,那么它的默认大小就是10
ArrayList<String> listStr10 = new ArrayList<>(10);

ArrayList在内部使用了数组来存储所有元素。例如,一个ArrayList拥有5个元素,实际数组大小为6(即有一个空位):

  1. size=5
  2. ┌───┬───┬───┬───┬───┬───┐
  3. 12345 │ │
  4. └───┴───┴───┴───┴───┴───┘

当添加一个元素并指定索引到ArrayList时,ArrayList自动移动需要移动的元素:

  1. size=5
  2. ┌───┬───┬───┬───┬───┬───┐
  3. 12 │ │ 345
  4. └───┴───┴───┴───┴───┴───┘

然后,往内部指定索引的数组位置添加一个元素,然后把size加1:

  1. size=6
  2. ┌───┬───┬───┬───┬───┬───┐
  3. 123456
  4. └───┴───┴───┴───┴───┴───┘

继续添加元素,但是数组已满,没有空闲位置的时候,ArrayList先创建一个更大的新数组,然后把旧数组的所有元素复制到新数组,紧接着用新数组取代旧数组:

  1. size=6
  2. ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
  3. 123456 │ │ │ │ │ │ │
  4. └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

新数组就有了空位,可以继续添加一个元素到数组末尾,同时size加1:

  1. size=7
  2. ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
  3. 1234567 │ │ │ │ │ │
  4. └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

ArrayList把添加和删除的操作封装起来,让我们操作`List`类似于操作数组,却不用关心内部元素如何移动。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/823231
推荐阅读
相关标签
  

闽ICP备14008679号