目录
通过静态数组的学习,我们知道,静态数组在创建时就需要对数组进行赋值,但当我们并不知道我们需要用什么元素时,就不方便创建数组了,那么这时我们可以使用动态数组。那么我们可以使用动态数组也就是ArrayList类。
(注意!Arrays类也是util包中的,与ArrayList类的区别在于,Arrays类是属于静态的)
但是创建动态数组时,我们需要知道自己大概会存储多少个元素,若创建的数组过小,后续则要经行扩容(将原先数组转移到另一个内存更大的数组,通常扩容1.5倍);若创建的数组过大,则造成不必要的存储空间的浪费。
(一)、ArrayList类的声明
ArrayList类是java中就存在的类,存在与util包中,我们可以直接使用它。那么我们先来看看java中它的具体内容(根据下图的方式打开有关ArrayList类的声明)
我们可以发现关于ArrayList类可以使用获得(get)、设置(set)、添加(add)、删除(remove)、扩容(grow)这几个方法
1.扩容
2、获得指定下标的元素
这里的E是泛型,也就是可以更具需要选择在这填相应数据类型的对应形式(泛型将会在下一篇文章中讲到)
3、替换指定下标处的元素
4、为指定下标处添加指定元素
(二)、具体使用步骤
1、导包
ArrayList类位于java.util包中,那么使用前我们需要先引入它。
import java.util.ArrayList;
2、初始化
我们在使用数组时,需要先对数组进行初始化。所谓的初始化就是为数组中的元素分配内存空间、赋值等。
当然数组也可以不初始化。我们知道数组是引用型数据类型的变量,那么只要让数组变量指向有效数组对象即可,即赋予该数组变量一个具有有效存储地址的数组对象即可。
格式:数据类型[] 变量名 = new 数据类型[数组长度];
eg. int[] MyList = new int[3]
如下代码:
//创建数组
ArrayList<String> array = new ArrayList<>();
//两种写法均可,<E>为泛型,如下代表只能存储String类型
ArrayList<String> array = new ArrayList<Streing>();
3、添加元素
在该动态数组中,未声明创建的数组大小,因此,按如下方法添加三个元素,下标则按默认顺序
array.add("a");//数组[0]c处添加元素a
array.add("b");//数组[1]c处添加元素b
array.add("c");//数组[2]c处添加元素c
4、删除元素
因为我们所用的数组ArrayList为util包中的,因此在这我们直接使用。
如下为删除下标为[0]的元素
//删除指定元素,并返回删除是否成功
System.out.println(array.remove(0));
5、计算大小
size,表示的是数组中具体有几个元素,而length表示的是数组所能容纳的元素个数。