ArrayList是List接口的一个实现类,它是程序中最常见的一种集合。在ArrayList内部封装了一个长度可变的数组对象,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。
ArrayList集合中大部分方法都是从父类Collection和List继承过来的,其中add()方法和get()方法用于实现元素的存取,接下来通过一个案例来学习ArrayList集合如何存取元素,如例所示。
import java.util.ArrayList; public class Example { public static void main(String[] args) { ArrayList list = new ArrayList(); // 创建ArrayList 集合 list.add("stu1"); // 向集合中添加元素 list.add("stu2"); list.add("stu3"); list.add("stu4"); System.out.println("集合的长度: " + list.size()); // 获取集合中元素的个数 System.out.println("第2个元素是: " + list.get(1)); // 取出并打印指定位置的元素 } }
运行结果:
集合的长度: 4 第2个元素是: stu2
例中,首先调用add(Object o)方法向ArrayList集合添加了4个元素,然后调用size()方法获取集合中元素个数,最后通过调用ArrayList的get(int index)方法取出指定索引位置的元素。从运行结果可以看出,索引位置为1的元素是集合中的第二个元素,这就说明集合和数组一样,索引的取值范围是从0开始的,最后一个索引是size-1,在访问元素时一定要注意索引不可超出此范围,否则会抛出角标越界异常IndexOutOfBoundsException。
由于ArrayList集合的底层是使用一个数组来保存元素,在增加或删除指定位置的元素时,会导致创建新的数组,效率比较低,因此不适合做大量的增删操作。但这种数组的结构允许程序通过索引的方式来访问元素,因此使用ArrayList集合查找元素很便捷。