参考文章 https://juejin.im/post/59954d9e6fb9a0248a3fd606
一、数组
数组是存储同一种数据类型的容器,它在声明时必须指定数组的大小,不支持动态的扩容。
二、动态数组创建
Java中的ArrayList继承的是Collection类。它的内部实现也是一个普通的数组。它允许Null的存在。在创建一个动态数组时有三种方式
1.创建一个空的数组
2.指定数组的大小
*3.将一个集合转换成数组 **
三、动态数组查询
根据索引来查找数组中元素的位置
查询是否包含一个元素
会将要查找的元素和数组中每一个位置存储的对象进行比较
四、添加方法动态数组的核心
1.数组中的size代表数组中含有多少个元素,每次插入或删除元素都会改变这个值。
2.如果数组中的length==size,即数组中占满了元素,那么对原数组进行扩容:创建一个更大容量的数组,将之前数组的值复制到这个新的数组中,使用这个新的数组作为容器。
数组和动态数组性能对比
数组的插入性能要比动态数组好,动态数组每次在插入时都会判断容器是否满了,如果已经满了会重新创建一个更大的数组,并且把之前元素全部拷贝到新的数组中,所以性能没有数组好。动态数组的操作性比数组好,因为内部封装了需要函数,用起来更方便