List 介面的特點
List
介面是Collection
介面的子介面,其主要特點如下:
List
中元素有序,是按照元素的插入順序進行排序的,每個元素都有一個與之關聯的整數型索引(索引從 0 開始),可以根據索引來訪問和操作元素,可以使用普通 for 回圈遍歷,List
中可以包含重復的元素,
public class ListTest() {
public static void main(String[] args) {
// List 中元素有序、且可重復
List list = new ArrayList();
list.add("Jack");
list.add("Rose");
list.add("May");
list.add("Luck");
list.add("Jack");
System.out.println("list = " + list); // list = [Jack, Rose, May, Luck, Jack]
// List 支持索引
System.out.println(list.get(2)); // May
}
}
List 介面常用方法
下面的代碼以其實作類ArrayList
演示List
介面的常用方法,
public class ListMethod() {
public static void main(String[] args) {
List list = new ArrayList();
// 添加指定元素到串列末尾
list.add("任盈盈");
list.add("趙敏");
System.out.println("list = " + list); // list = [任盈盈, 趙敏]
// void add(int index, E element)
// 在此串列的指定位置插入指定的元素,
// 將當前位于該位置的元素(如果有)以及后續的元素向右移動(索引加一),
list.add(1, "周芷若");
System.out.println("list = " + list); // list = [任盈盈, 周芷若, 趙敏]
// boolean addAll(int index, Collection<? extends E> c)
// 將指定集合中的所有元素按指定位置插入到此串列中,
// 將當前位于該位置的元素(如果有)以及后續的元素向右移動(索引增加),
// 新元素將按照指定集合迭代器回傳它們的順序出現在此串列中,
List list1 = new ArrayList();
list1.add("風清揚");
list1.add("任我行");
list.addAll(2, list1);
System.out.println("list = " + list); // list = [任盈盈, 周芷若, 風清揚, 任我行, 趙敏]
// E get(int index):回傳此串列中指定位置的元素,
System.out.println(list.get(1)); // 周芷若
list.add("風清揚");
System.out.println("list = " + list); // list = [任盈盈, 周芷若, 風清揚, 任我行, 趙敏, 風清揚]
// int indexOf(Object o)
// 回傳此串列中指定元素第一次出現的索引,如果串列不包含該元素,則回傳 -1,
System.out.println(list.indexOf("風清揚")); // 2
// int lastIndexOf(Object o)
// 回傳此串列中指定元素最后一次出現的索引,如果串列不包含該元素,則回傳 -1,
System.out.println(list.lastIndexOf("風清揚"));// 5
// E remove(int index):移除此串列中指定位置的元素,
// 將任何后續的元素向左移動(其索引減一),回傳從串列中移除的元素,
list.remove(0);
System.out.println("list = " + list); // list = [周芷若, 風清揚, 任我行, 趙敏, 風清揚]
// boolean remove(Object o):從串列中移除指定元素的第一個匹配項(如果存在),
// 如果串列不包含該元素,則串列保持不變,如果串列發生更改,則回傳 true,
list.remove("風清揚");
System.out.println("list = " + list); // list = [周芷若, 任我行, 趙敏, 風清揚]
//E set(int index, E element):用指定元素替換串列中指定位置的元素,
list.set(1, "張無忌");
System.out.println("list = " + list); // list = [周芷若, 張無忌, 趙敏, 風清揚]
// List<E> subList(int fromIndex, int toIndex)
// 回傳此串列中從 fromIndex(包括)到 toIndex(不包括)的子集合,
// 如果 fromIndex 和 toIndex 相等,則回傳的串列為空,
List list2 = list.subList(1, 3);
System.out.println("list2 = " + list2); // list2 = [張無忌, 趙敏]
// 該方法消除了顯式的范圍操作的需求(這種操作通常用于陣列),
// 需要對串列的一部分進行的操作都可以通過傳遞子串列視圖而不是把整個串列作為范圍,
// 類似的習慣用法也可以用于 indexOf 和 lastIndexOf 方法,
// 例如,以下習慣用法從串列中移除了一系列元素:
System.out.println("list = " + list); // 輸出:list = [周芷若, 張無忌, 趙敏, 風清揚]
list.subList(1, 3).clear();
System.out.println("list = " + list);// 輸出:list = [周芷若, 風清揚]
}
}
List 介面遍歷元素方式
List
介面可以使用 Iterator(迭代器)、增強 for 回圈和普通 for 回圈三種方式來遍歷元素,下面的代碼以其實作類Vector
演示List
介面遍歷元素的方式,
public class ThroughElements() {
public static void main(String[] args) {
List list = new Vector();
list.add("蛋撻");
list.add("芝士蛋糕");
list.add("提拉米蘇");
System.out.println("---使用 Iterator---");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object o = iterator.next();
System.out.println(o);
}
System.out.println("---使用增強 for 回圈---");
for (Object o : list) {
System.out.println(o);
}
System.out.println("---使用普通 for 回圈---");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/554903.html
標籤:其他
下一篇:返回列表