天天看點

Java 集合類——List集合List集合

List集合

LIst 集合包括 List 接口以及 List 接口的所有實作類。List** 集合中的元素允許重複,各元素的順序就是對象插入的順序。類似 Java 數組,使用者可以通過使用索引(元素在集合中的位置)來通路集合中的元素。

List接口

List 接口繼承了 Collction 接口,是以包含 Collection 中的所有方法。此外,List 接口中還定義了以下兩個重要的方法:

  • get(int index):獲得指定索引位置的元素
  • set(int index, Object obj):将集合中指定索引位置的對象修改為指定的對象

List接口的實作類

LIst 接口的常用實作類有 ArrayList 與 LinkedList

  • ArrayList 類實作了可變的數組,允許儲存所有元素,包括 null ,并可以根據索引的位置對集合進行快速的随機通路;缺點是向指定的索引位置插入對象或删除對象的速度較慢。
  • LinkedList 類采用連結清單結構儲存對象。這種結構的優點是便于向集合中插入和删除對象,需要向集合中插入、删除對象時,使用 LinkedList 類實作的 List 集合的效率較高;但對于随機通路集合中的對象,使用 LInkedList 類實作 List 集合的效率較低。

使用 List 集合時通常聲明為 List 類型,可通過不同的實作類來執行個體化集合

【例】通過 ArrayList、LinkedList 類執行個體化 List 集合,代碼如下:

List<E> list = new ArrayList<>();
LIst<E> list2 = new LinkedList<>();
           

在上面的代碼中,E 可以是合法的 Java 資料類型。例如,如果集合中的元素為字元串類型,那麼 E 可以修改為 String。

【例】在主方法中建立集合對象,通過 Math 類的 random () 方法随機擷取集合中的某個元素,然後移除索引位置為 “0” 的元素,最後周遊數組。

import java.util.ArrayList;
import java.util.List;

public class LIstTest {
	public static void main(String[] args) {
		List<String> list = new ArrayList();
		//存儲任意資料類型值
		list.add("12");//添加元素
		list.add("hello");
		list.add("12");//允許重複添加元素
		System.out.println("元素個數:" + list.size());
		int i = (int) (Math.random()*list.size);//擷取随機數
		System.out.println("擷取随機位置的值:" + list.get(i));//擷取随機位置的值
		//移除元素
		System.out.println("移除第一個元素:" + list.remove(0));
		System.out.println("元素個數:" + list.size());
		for (int i = 0; i < list.size(); i++)
			System.out.println(list.get(i));//擷取指定位置的值
		System.out.println("移除字元串hello:" + list.remove("hello"));//移除指定的值,移除清單第一處的值,傳回boolean
		System.out.println("元素個數:" + list.size());
		list.clear();//清除清單
		System.out.println("元素個數:" + list.size());
	}
}
           

運作結果如圖:

Java 集合類——List集合List集合
說明:與數組相同,集合的索引也是從 0 開始。