19.2 数组列表类

数组列表类就是数组的一个引申类,它继承了数组的特点,并且又在数组基础上有了自己所独特的优势。本节介绍如何使用数据列表类。

19.2.1 什么是数组列表类

数组的容量一旦被初始化设定好,就不可以再更改。这对于正在运行的程序来说,是一种缺陷。在程序设计过程中,经常会遇到一些不确定的因素,导致无法确定一个数组的容量。为了解决这个问题,Java语言引进了数组列表。

数组列表就是一个可以动态变化容量的数组,其根据正在运行的程序的变化,随时改变数组的容量,以满足程序的需要。

ArrayList类是一个库类,定义在java.util包中。所以每次编写程序的时候,都必须引入这个包。数组列表中存放的是Object类型,因此在数组列表中存放的对象类型,以最原型的父类代替。如果要提取其中的元素,都要进行类型转换,将元素还原为它本身的类型。

由于ArrayList是一个可以自动伸缩的数组,所以可以无限制向数组中添加新元素。另外,因为添加的是Object类的子类类型,所以系统会自动完成子类向父类的转换。

如果能预计一个数组列表中需要存储多少元素,那么可以在填充之前,调用ensureCapacity()方法,使得系统分配一个包含固定容量的内部数组。下面通过大量的实例来讲述这种数据结构。