List接口

  List接口的定义如下:



public interface List<E>extends Collection<E>



  可以发现List接口时Collection接口的子类,List接口大量的扩充了Collection接口的操作,List接口里的内容是允许重复的。

List接口常用方法

  一句话概括这些方法的功能:就是为了实现增删减查的功能。

  有如下的方法:



void add(int index,E element)
//在列表的指定位置插入指定元素(可选操作)。将当前处于该位置的元素(如果有的话)和所有后续元素向右移动(在其索引中加 1)。 
boolean addAll(int index, Collection<? extends E> c)
//将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。
E get(int index)    //返回列表中指定位置的元素。
int indexOf(Object o)
//返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1
E set(int index,E element)
//用指定元素替换列表中指定位置的元素(可选操作)。
boolean remove(Object o)
//从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。如果列表不包含元素,则不更改列表。



  当然除了以上这些,还有其他的方法。

List接口的子类—ArrayList(常用)

  ArrayList的定义如下:



public class ArrayList<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Serializable



  ArrayList是List接口的子类,那么如果想使用List接口,就必须通过对象的多态性来实例化List接口。下面通过实例了解ArrayList。

  实例一:指定位置添加数据



import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
    public static void main(String[] args) {
        List<String> lists=new ArrayList<String>();
        lists.add("Hello");    //加入内容
        lists.add(0,"world");
        System.out.println(lists);
    }
}



  运行结果如下:



[world, Hello]



  实例二:指定位置添加内容



import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
    public static void main(String[] args) {
        List<String> lists=new ArrayList<String>();
        List<String> lists1=new ArrayList<String>();
        lists.add("Hello");
        lists.add("world");
        System.out.println(lists);
        lists1.add("This");
        lists1.add("is");
        lists.addAll(0,lists1);  //在指定位置添加一组内容
        System.out.println(lists);
    }
}



  运行结果如下:



[Hello, world]
[This, is, Hello, world]



  实例三:删除内容(可以使用两种方式)



import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
    public static void main(String[] args) {
        List<String> lists=new ArrayList<String>();
        lists.add("输出:");
        lists.add("Hello");
        lists.add("world");
        System.out.println(lists);
        lists.remove(0); //通过编号删除内容
        System.out.println(lists);
        lists.remove("Hello");  //通过内容来删除内容
        System.out.println(lists);
    }
}



  运行结果如下:



[输出:, Hello, world]
[Hello, world]
[world]



  通过以上程序我们发现内容前后都有'[]',还存在',',那么如何去除他们呢?

  实例四:依次输出内容



import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
    public static void main(String[] args) {
        List<String> lists=new ArrayList<String>();
        lists.add("输出:");
        lists.add("Hello");
        lists.add("world");
        for(int i=0;i<lists.size();i++){  //size()方法取得集合中内容的个数
            System.out.println(lists.get(i));  //get()方法取得其中的内容
        }
    }
}



  运行结果如下:



输出:
Hello
world



  此输出方式(根据所有取出内容)是List接口独有的,其他接口时没有的。这也是为什么List接口里的内容可以重复的原因。

  实例四



import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
    public static void main(String[] args) {
        List<String> lists=new ArrayList<String>();
        System.out.println("判断集合是否为空:"+lists.isEmpty());
        lists.add("输出:");
        lists.add("Hello");
        lists.add("world");
        System.out.println("Hello所在位置是:"+lists.indexOf("Hello"));
        System.out.println("是否存在world:"+lists.contains("world"));
    }
}



  输出结果如下:



判断集合是否为空:true
Hello所在位置是:1
是否存在world:true



总结:

  List中允许重复元素