我们在设计程序时总会遇到使用数组,然而数组有个很大的缺点,一旦确定了数组的大小,就很难改变了,然而为了解决这个问题,java推出了另外一个类ArrayList 类。他就很容易的自动扩展数组容量了。
ArrayList类是个有参数类型的泛型类,目的是为了指定数组列表保存的元素对象的类型,需要使用一对尖括号括起来追加到ArrayList后面,例如:
ArrayList <对象类型> 数组名 = new ArrayList <对象类型>();
注意:第二个尖括号里面的对象类型可以省略。
具体操作方法:
●ArrayList<E>()
构造一个空数组列表。
●ArrayListsE>(int initialCapacity)
用指定容量构造一个空数组列表。
●bdolean add(E obj)
在数组列表的末尾追加一个元素。永远返回true。
●int size()
返回当前存储在数组列表中的元素个数。(当然,这个值永远不会大于数组列表的容量。)●void ensureCapacity(int capacity)
确保数组列表在不重新分配内部存储数组的情况下有足够的容量存储给定数量的元素。●void trimToSize()
将数组列表的存储容量削减到当前大小。
访问数组列表元素:
很遗憾,天下没有免费的午餐。数组列表自动扩展容量的便利增加了访问元素语法的复杂程度。其原因是ArrayList类并不是Java程序设计语言的一部分;它只是由某个人编写并在标准库中提供的一个实用工具类。这使得我们不能使用我们喜爱的 [ ] 语法格式访问或改变数组的元素,而要使用get和set方法。
例如,要设置第1个元素,可以使用:
staff.set(i,harry);
它等价于对数组a的元素赋值(与数组一样,下标值从0开始): a[ i ] = harry;
具体方法:
●E set(int index, E obj)
将值obj放置在数组列表的指定索引位置,返回之前的内容。
●E get(int index)
得到指定索引位置存储的值。
●void add(Ant index, E obj)
后移元素从而将obj插入到指定索引位置。
●E remove(int index)
删除指定索引位置的元素,并将后面的所有元素前移。返回所删除的元素。