《List的用法和实例详解》由会员分享,可在线阅读,更多相关《List的用法和实例详解(4页珍藏版)》请在金锄头文库上搜索。
1、java 中 List 的用法和实例详解 List的用法List包括 List接口以及 List接口的所有实现类。因为 List接口实现了 Collection接口,所以 List接口拥有 Collection接口提供的所有常用方法,又因为 List是列表类型,所以 List接口还提供了一些适合于自身的常用方法,如表 1所示。表 1 List接口定义的常用方法及功能从表 1可以看出,List 接口提供的适合于自身的常用方法均与索引有关,这是因为 List集合为列表类型,以线性方式存储对象,可以通过对象的索引操作对象。List接口的常用实现类有 ArrayList和 LinkedList,在使用
2、 List集合时,通常情况下声明为List类型,实例化时根据实际情况的需要,实例化为 ArrayList或 LinkedList,例如:List l = new ArrayList();/ 利用 ArrayList类实例化 List集合List l2 = new LinkedList();/ 利用 LinkedList类实例化 List集合1add(int index, Object obj)方法和 set(int index, Object obj)方法的区别在使用 List集合时需要注意区分 add(int index, Object obj)方法和 set(int index, Obje
3、ct obj)方法,前者是向指定索引位置添加对象,而后者是修改指定索引位置的对象,例如执行下面的代码:srccommwqTestCollection.java关键代码:public static void main(String args) String a = A, b = B, c = C, d = D, e = E;List list = new LinkedList();list.add(a);list.add(e);list.add(d);list.set(1, b);/ 将索引位置为 1的对象 e修改为对象 blist.add(2, c);/ 将对象 c添加到索引位置为 2的位置I
4、terator it = list.iterator();while (it.hasNext() System.out.println(it.next();在控制台将输出如下信息:ABCD因为 List集合可以通过索引位置访问对象,所以还可以通过 for循环遍历 List集合,例如遍历上面代码中的 List集合的代码如下:srccommwqTestCollection.java关键代码:for (int i = 0; i list = new LinkedList();list.add(a);list.add(e);list.add(d);list.set(1, b);/ 将索引位置为 1的对
5、象 e修改为对象 blist.add(2, c);/ 将对象 c添加到索引位置为 2的位置Iterator it = list.iterator();while (it.hasNext() System.out.println(it.next();/ for (int i = 0; i list = new ArrayList();list.add(a); / 索引位置为 0list.add(repeat); / 索引位置为 1list.add(b); / 索引位置为 2list.add(repeat); / 索引位置为 3 list.add(c); / 索引位置为 4list.add(rep
6、eat); / 索引位置为 5list.add(d); / 索引位置为 6System.out.println(list.indexOf(repeat);System.out.println(list.lastIndexOf(repeat);System.out.println(list.indexOf(b);System.out.println(list.lastIndexOf(b);srccommwqTestCollection.java完整代码如下:package com.mwq;import java.util.ArrayList;import java.util.List;publi
7、c class TestCollection public static void main(String args) System.out.println(开始:);String a = A, b = B, c = C, d = D, repeat = Repeat;List list = new ArrayList();list.add(a); / 索引位置为 0list.add(repeat); / 索引位置为 1list.add(b); / 索引位置为 2list.add(repeat); / 索引位置为 3list.add(c); / 索引位置为 4list.add(repeat);
8、 / 索引位置为 5list.add(d); / 索引位置为 6System.out.println(list.indexOf(repeat);System.out.println(list.lastIndexOf(repeat);System.out.println(list.indexOf(b);System.out.println(list.lastIndexOf(b);System.out.println(结束!);在控制台将输出如下信息:15223subList(int fromIndex, int toIndex)方法在使用 subList(int fromIndex, int t
9、oIndex)方法截取现有 List集合中的部分对象生成新的List集合时,需要注意的是,新生成的集合中包含起始索引位置代表的对象,但是不包含终止索引位置代表的对象,例如执行下面的代码:srccommwqTestCollection.java关键代码:public static void main(String args) String a = A, b = B, c = C, d = D, e = E;List list = new ArrayList();list.add(a); / 索引位置为 0list.add(b); / 索引位置为 1list.add(c); / 索引位置为 2li
10、st.add(d); / 索引位置为 3list.add(e); / 索引位置为 4list = list.subList(1, 3);/ 利用从索引位置 1 到 3 的对象重新生成一个 List集合for (int i = 0; i list = new ArrayList();list.add(a); / 索引位置为 0list.add(b); / 索引位置为 1list.add(c); / 索引位置为 2list.add(d); / 索引位置为 3list.add(e); / 索引位置为 4list = list.subList(1, 3);/ 利用从索引位置 1 到 3 的对象重新生成一个 List集合for (int i = 0; i list.size(); i+) System.out.println(list.get(i);System.out.println(结束!);在控制台将输出如下信息:BC