列表界面(List Interface)
List接口扩展了Collection并声明了存储元素序列的集合的行为。
可以使用从零开始的索引,通过列表中的位置插入或访问元素。
列表可能包含重复的元素。
除了Collection定义的方法之外,List还定义了一些自己的方法,这些方法在下表中进行了总结。
如果无法修改集合,则若干列表方法将抛出UnsupportedOperationException,并且当一个对象与另一个对象不兼容时会生成ClassCastException。
Sr.No. | 方法和描述 |
---|---|
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分配给调用列表中index指定的位置。 |
10 | List subList(int start, int end) 返回一个列表,其中包含调用列表中从start到end.1的元素。 返回列表中的元素也由调用对象引用。 |
例子 (Example)
上面的接口已经在各种类中实现,如ArrayList或LinkedList等。以下是从上述集合方法的各种类实现中解释几个方法的示例 -
import java.util.*;
public class CollectionsDemo {
public static void main(String[] args) {
List a1 = new ArrayList();
a1.add("Zara");
a1.add("Mahnaz");
a1.add("Ayan");
System.out.println(" ArrayList Elements");
System.out.print("\t" + a1);
List l1 = new LinkedList();
l1.add("Zara");
l1.add("Mahnaz");
l1.add("Ayan");
System.out.println();
System.out.println(" LinkedList Elements");
System.out.print("\t" + l1);
}
}
这将产生以下结果 -
输出 (Output)
ArrayList Elements
[Zara, Mahnaz, Ayan]
LinkedList Elements
[Zara, Mahnaz, Ayan]