java之List接口的用法

来源:互联网 发布:2007excel数据有效性 编辑:程序博客网 时间:2024/06/06 03:16

1.什么是List接口?

List接口继承于Collection接口,是单例集合的一个重要分支。List接口不但继承了Collection接口中的所有方法。而且还增加了一些根据元素索引来操作集合的特有方法。这里就不再一一举例。而List接口下又有两个主要的实现类,一个是ArrayList集合,一个是LinkeList集合。

2.ArrayList集合的简介和用法

首先我们从名字来分析一下,array是数组的意思,而它的储存方式就是在ArrayList内部封装了一个长度可以变化的数组对象,当存入的数据大于数组的长度时,ArrayList集合就会在内部分部一个更大的空间来储存这些元素。所以我们不妨将ArrayList集合看作一个长度可以变化的数组。另外,ArrayList中的大部分方法都是继承于父类Collection和List。其中add()方法和get()方法用于元素的存取。

package bean;import java.util.*;public class Example5_3 {    public static void main(String[] args){        ArrayList<String> list=new ArrayList<String>();//创建一个ArrayList集合        list.add("stu1");        list.add("stu2");        list.add("stu3");        list.add("stu4");        System.out.println("集合的长度:"+list.size());        System.out.println("第二个元素是:"+list.get(1));    }}

运行如下:
这里写图片描述

从以上代码可以看出首先用add(object o)方法向ArrayList集合添加了四个元素。然后通过size()方法获取元素个数,最后通过get(int index)方法指定索引位置的元素
注意:由于Arraylist的底层是使用一个数组来保存元素,在增加或删除指定位置的元素时,会导致创建新的数组,效率比较低,因此不适合做大量的增删操作。但这种结构查询时效率会很高!

3.LinkedList集合的简介和用法

由于Arraylist集合在数组的增删方面效率比较低,为了克服这种局限性,我们可以使用List的另外一个实现类LinkedList。从名称来看Link是链接的意思,我们不如理解为该集合内部维护了一个循环链表,链表的每一个元素都使用引用的方式来记住他的前一个元素和后一个元素,从而可以将所有的元素彼此链接起来。而当插入新的元素时,我们只需要修改元素之间的这种引用方式就行了,删除一个元素也是如此。正是这样的储存结构使得Linkedlist对元素的增删操作具有很高的效率
这里写图片描述
从上图可以看出,当增加一个元素时,只需要让元素1记住他的后面是新元素,让元素2记住他的前面是新元素就可以了。而想要删除元素只需要让元素1和元素2变成前后关系就行了
LinkedList除了具备增删元素效率高的特点外,还还专门对元素的增删操作定义了一些特殊的方法
下面我通过一个程序具体讲解一下:

package bean;import java.util.*;public class Example5_4 {    public static void main(String[] args){        LinkedList Link=new LinkedList();//创建LinkedList集合        Link.add("stu1");        Link.add("stu2");        Link.add("stu3");        Link.add("stu4");        System.out.println(Link.toString());//取出并打印该集合中的元素        Link.add(3,"Student");//像该集合的指定位置插入元素        System.out.println(Link);        Link.addFirst("first");//像该集合第一个位置插入元素        System.out.println(Link);        System.out.println(Link.getFirst());//取出该集合第一个元素        Link.remove(3);//移除该集合指定位置元素        Link.removeFirst();//移除该集合第一个元素        System.out.println(Link);    }}

上述代码中用add(int index,Object o)方法和addFirst(Object o)方法分别在集合的第一个位置和指定位置插入元素。用remove(int index)和removeFirst()方法将指定位置和集合中的第一个元素移除。从上述代码的增删操作中可以看出LinkedList对元素的增删操作还是很方便的!