1.Array List集合的基本使用
Array List是List接口的实现类,实现了List接口中的所有抽象方法,它也是程序中最常用的List。每个实例化的Array List底层都是用一个数组实现存储的,当数组存满后,再继续存入时,Array List会重新定义一个容量更大的数组,并将原数组的内容和新元素向新数组拷贝,因此,Array List可以看作一个长度可变的数组。
Array List构造方法如下:
(1)public Array List():构造一个初始容量为10的空列表。
(2)public Array List(int initialCapacity):构造一个具有指定初始容量的空列表。如果能够预知所能存储的元素个数,可在构造Array List时指定其容量。
(3)public Array List(Collection<?extends E>c):构造一个包含指定Collection的元素的列表,这些元素是按照该Collection的迭代器返回它们的顺序排列的。
【例9-1】
创建一个Array List集合,并演示其常用方法完成集合的增、删、改、查等功能。
新建一个项目chapter9,在src目录下新建一个包cn.linaw.chapter9.demo01,在包里新建一个测试类Array List Test,源代码如图9-2所示。
图9-2 ArrayList集合常用方法
(1)程序第6行创建了一个空的Array List<String>集合list,该list集合只能存储String类型的元素。在定义集合时,可以使用泛型(即<参数化类型>)来限定集合中存储的数据类型。注意,使用集合类时建议都使用泛型,这样,在集合中存取数据时可以避免大量的类型判断。
(2)list集合通过add方法添加元素,通过get方法取出指定索引位置的元素。注意,集合的索引取值范围和数组类似,都是从0开始,到list.size()-1为止,访问元素时避免超出范围,否则抛出IndexOutOfBoundsException异常。
2.Array List集合的遍历(www.xing528.com)
开发中经常需要遍历集合,使集合中的每个元素均被访问一次,而且仅被访问一次。
【例9-2】
以Array List集合为例演示List集合的遍历。
List集合有三种常用的遍历方式,图9-3所示为测试类Array List Traversal Test演示。
图9-3 List集合的三种遍历方式
(1)第一种方式采用普通for循环遍历List集合,和数组的遍历类似。在遍历的过程中可以同时删除指定元素。
(2)第二种方式采用迭代器方式遍历List集合。首先在程序第18行通过调用list.iterator()方法得到该list的Iterator迭代器。使用迭代器遍历时,可以同时删除集合中的元素。
(3)第三种方式是JDK 1.5之后提供的增强for循环(也称为foreach循环),可以用来对数组或者集合进行遍历。foreach循环的语法格式如下:
编译器在编译期间会以特定的字节码来处理foreach循环。对于数组,foreach循环实际使用的是普通for循环;对于集合,foreach循环实际使用的是Iterator迭代器迭代。
foreach循环的写法简洁,但是该方式只能访问数组或集合中的元素,而无法修改其中的元素,这是因为,遍历取回的元素赋值给临时变量,对临时变量的修改不能影响原有数组或集合。
List集合还可以使用ListIterator迭代器,java.util.ListIterator<E>接口继承自Iterator<E>接口,ListIterator迭代器允许程序员按任一方向遍历List集合、迭代期间修改List集合,并获得迭代器在List集合中的当前位置,这里不再赘述。再次强调:ListIterator迭代器只能用于List集合。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。