学科分类
目录
Java基础

ArrayList集合

ArrayList是List接口的一个实现类,它是程序中最常见的一种集合。在ArrayList内部封装了一个长度可变的数组对象,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。

正是由于ArrayList内部的数据存储结构是数组形式,在增加或删除指定位置的元素时,会创建新的数组,效率比较低,因此不适合做大量的增删操作。但是,这种数组结构允许程序通过索引的方式来访问元素,因此使用ArrayList集合在遍历和查找元素时显得非常高效。

ArrayList集合中大部分方法都是从接口Collection和List继承过来的,接下来通过一个案例来学习如何使用ArrayList集合的方法来存取元素,如文件1所示。

文件1 Example01.java

 1    import java.util.ArrayList;
 2    public class Example01 {
 3        public static void main(String[] args) {
 4             // 创建ArrayList集合
 5            ArrayList list = new ArrayList();
 6             // 向集合中添加元素
 7            list.add("stu1");                    
 8            list.add("stu2");
 9            list.add("stu3");
 10            list.add("stu4");
 11            System.out.println("集合的长度:" + list.size()); 
 12            System.out.println("第2个元素是:" + list.get(1));
 13        }
 14    }

运行结果如图1所示。

图1 运行结果

文件1中,首先通过“new ArrayList()”语句创建了一个空的ArrayList集合,接着调用add(Object o)方法向ArrayList集合中添加了4个元素,然后调用size()方法获取集合中元素个数,最后通过调用ArrayList的get(int index)方法取出指定索引位置的元素。

从图1可以看出,索引位置为1的元素是集合中的第二个元素,这说明集合和数组一样,索引的取值是从0开始的,最后一个索引是size-1,在访问元素时一定要注意索引不可超出此范围,否则会抛出角标越界异常IndexOutOfBoundsException。

注意:

1.在编译文件1时,会得到如图1所示的警告,意思是说在使用ArrayList集合时并没有显示的指定集合中存储什么类型的元素,会产生安全隐患,这涉及到泛型安全机制的问题。与泛型相关的知识将在后面的章节详细讲解,现在无需考虑。

图2 运行结果

2.在编写程序时,不要忘记使用类似于“import java.util.ArrayList;”语句导包,否则程序将会编译失败,显示类找不到,如图6-4所示。要解决此问题,只需单击图6-4所示错误小窗口中的第一行“Import’ArrayList’(java.util)”链接即可,这样Eclipse就会自动导入ArrayList的包。另外在后面的案例中可能会大量的用到集合类,除了可以使用上述方式导入指定集合类所在的包外,为了方便,程序中还可以统一使用import java.util.;来进行导包,其中为通配符,整个语句的意思是将java.util包中的内容都导入进来。

图3 编译错误

点击此处
隐藏目录