List接口擴(kuò)展了集合,并聲明存儲(chǔ)元素的序列集合的行為。
元素可以插入或訪問(wèn)他們的列表中的位置,使用從零開(kāi)始的索引。
列表可以包含重復(fù)的元素。
除了由集合中定義的方法列表定義了一些它自己的,其它總結(jié)如下表。
幾個(gè)列表的方法將拋出一個(gè)UnsupportedOperationException如果集合不能被修改,當(dāng)一個(gè)對(duì)象與另一個(gè)不兼容時(shí)產(chǎn)生ClassCastException。
List接口總結(jié)于下表的方法:
序號(hào) | 方法 | 描述 |
1 | void add(int index, Object obj) | Inserts obj 插入到調(diào)用列表中的索引通過(guò)索引處。達(dá)到或超出插入點(diǎn)任何預(yù)先存在的要素被上移。因此,不會(huì)有元素被覆蓋。 |
2 |
boolean addAll(int index, Collection c) |
插入c的所有元素入索引通過(guò)索引處的調(diào)用列表。等于或超出插入點(diǎn)任何預(yù)先存在的要素被上移。因此,沒(méi)有任何元素被覆蓋。如果調(diào)用列表更改并返回true,否則返回false。 |
3 | Object get(int index) | 返回存儲(chǔ)調(diào)用集合中指定索引處的對(duì)象。 |
4 | int indexOf(Object obj) | 返回調(diào)用列表obj的第一個(gè)實(shí)例的索引。如果obj不是列表中的一個(gè)元素,則返回-1。 |
5 | int lastIndexOf(Object obj) | 返回調(diào)用列表obj的最后一個(gè)實(shí)例的索引。如果obj不是列表中的一個(gè)元素,則返回-1。 |
6 | ListIterator listIterator( ) | 返回一個(gè)迭代器調(diào)用列表的開(kāi)始。 |
7 | ListIterator listIterator(int index) | 返回一個(gè)迭代器調(diào)用列表開(kāi)頭的在指定索引處。 |
8 | Object remove(int index) | 從調(diào)用列表刪除index位置的元素,并返回被刪除的元素。結(jié)果列表中被壓縮。也就是說(shuō),隨后的元素的索引減一。 |
9 | Object set(int index, Object obj) | 賦予obj轉(zhuǎn)換通過(guò)索引調(diào)用列表中指定的位置。 |
10 | List subList(int start, int end) | 返回一個(gè)列表,其中包括在調(diào)用列表,從開(kāi)始元素end-1。在返回列表中的元素也被調(diào)用對(duì)象的引用。 |
實(shí)例
以下是表示List接口如何使用的示例:
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(" " + 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(" " + l1);
}
}
以上實(shí)例編譯運(yùn)行結(jié)果如下:
ArrayList Elements
[Zara, Mahnaz, Ayan]
LinkedList Elements
[Zara, Mahnaz, Ayan]