动态数组

参考文章 https://juejin.im/post/59954d9e6fb9a0248a3fd606

一、数组

数组是存储同一种数据类型的容器,它在声明时必须指定数组的大小,不支持动态的扩容。

二、动态数组创建

Java中的ArrayList继承的是Collection类。它的内部实现也是一个普通的数组。它允许Null的存在。在创建一个动态数组时有三种方式

1.创建一个空的数组

动态数组_第1张图片
image.png

2.指定数组的大小

动态数组_第2张图片
image.png

*3.将一个集合转换成数组 **

动态数组_第3张图片
image.png

三、动态数组查询

根据索引来查找数组中元素的位置

动态数组_第4张图片
image.png

查询是否包含一个元素
会将要查找的元素和数组中每一个位置存储的对象进行比较

动态数组_第5张图片
image.png

四、添加方法动态数组的核心

1.数组中的size代表数组中含有多少个元素,每次插入或删除元素都会改变这个值。
2.如果数组中的length==size,即数组中占满了元素,那么对原数组进行扩容:创建一个更大容量的数组,将之前数组的值复制到这个新的数组中,使用这个新的数组作为容器。

动态数组_第6张图片
image.png

数组和动态数组性能对比

数组的插入性能要比动态数组好,动态数组每次在插入时都会判断容器是否满了,如果已经满了会重新创建一个更大的数组,并且把之前元素全部拷贝到新的数组中,所以性能没有数组好。动态数组的操作性比数组好,因为内部封装了需要函数,用起来更方便

你可能感兴趣的:(动态数组)