List接口扩展了Collection接口并声明了存储元素序列的集合的行为。
可以使用从零开始的索引,在列表中插入或访问列表中的元素。
列表可能包含重复的元素。
除了Collection接口定义的方法之外,List接口还定义了一些自己的方法,这些方法在下表中进行了总结。
如果无法修改集合,有几个List方法抛出UnsupportedOperationException异常,并且当一个对象与另一个对象不兼容时会生成ClassCastException异常。
以下是Java List接口的方法列表 -
编号
方法
描述
1
void add(int index, Object obj)
将obj插入到索引中传递的索引的调用列表中。插入点处或之外的任何预先存在的元素向上移动。因此,不会覆盖任何元素。
2
boolean addAll(int index, Collection c)
将c的所有元素插入到索引中传递的索引的调用列表中。插入点处或之外的任何预先存在的元素向上移动。因此,不会覆盖任何元素。如果调用列表更改,则返回true,否则返回false。
3
Object get(int index)
返回存储在调用集合中指定索引处的对象。
4
int indexOf(Object obj)
返回调用列表中第一个obj实例的索引。如果obj不是列表的元素,则返回-1。
5
int lastIndexOf(Object obj)
返回调用列表中最后一个obj实例的索引。如果obj不是列表的元素,则返回-1。
6
ListIterator listIterator()
返回调用列表开头的迭代器。
7
ListIterator listIterator(int index)
返回从指定索引开始的调用列表的迭代器。
8
Object remove(int index)
从调用列表中删除位置索引处的元素,并返回已删除的元素。结果列表是压缩的。也就是说,后续元素的索引减1。
9
Object set(int index, Object obj)
将obj分配给调用列表中索引指定的位置。
10
List subList(int start, int end)
返回一个列表,其中包含调用列表中从start到end-1的元素。返回列表中的元素也由调用对象引用。
示例
上面的接口已经在各种类中实现,如ArrayList或LinkedList等。以下是从上述集合方法的各种类实现中几个方法的示例 -
import java.util.*;
/* 文件 : CollectionsDemo.java */
public class CollectionsDemo {
public static void main(String[] args) {
List a1 = new ArrayList();
a1.add("Java");
a1.add("Maxsu");
a1.add("Python");
System.out.println(" ArrayList Elements");
System.out.print("\t" + a1);
List l1 = new LinkedList();
l1.add("Java");
l1.add("Maxsu");
l1.add("Python");
System.out.println();
System.out.println(" LinkedList Elements");
System.out.print("\t" + l1);
System.out.println("Get index of Maxsu: " + a1.indexOf("Maxsu"));
System.out.println("Get index of PHP: " + a1.indexOf("PHP"));
}
}
执行上面示例代码,得到以下结果 -
ArrayList Elements
[Java, Maxsu, Python]
LinkedList Elements
[Java, Maxsu, Python]Get index of Maxsu: 1
Get index of PHP: -1