Java 中的陣列列表
Java 是一種流行且功能強大的程式語言,用於多個領域。因此,我們經常會遇到希望將資料儲存為有序集合的情況。
Java 提供了 List
介面來將不同的資料格式儲存為一個名稱下的有序集合。
List
介面是許多子類的父介面。例如,ArrayList
、LinkedList
、Stack
和 Queue
實現 List
介面。
另一方面,陣列
是另一種流行的儲存具有相同資料型別的資料集合的方法。陣列簡單且易於處理。
我們可以輕鬆建立不同資料型別的陣列並使用索引執行操作。本文將瞭解 Java 中 Lists 和陣列的區別,並在 Java 中建立陣列列表。
Java 中的列表是什麼
在 Java 中,List
是具有相同資料型別的有序資料集合。Java 列表是基於索引的,可以使用索引訪問其中的元素。
我們可以進行插入、刪除、更新等操作。
Java 列表不限於儲存原始資料型別。我們可以在列表中儲存物件、陣列和任何其他複雜的資料型別,我們應該注意,列表甚至可以儲存空元素。
由於 List 是一個介面,我們不能直接例項化 List 型別的物件。
相反,Java 有各種 List 型別,例如 ArrayList
、LinkedList
等。這些類實現 List 介面並提供每種型別的特定功能。
我們還可以通過實現 List 介面並定義其方法來建立我們的列表型別。
我們可以定義和例項化一個 ArrayList
,如下所示。
List<datatype> nameList = new ArrayList<datatype>();
注意我們不能例項化一個介面,但是我們可以定義一個介面的物件。因此,我們需要例項化一個特定的列表型別,例如 ArrayList
、LinkedList
等。
我們可以使用下面給出的不同語法。由於 List 是 ArrayList
的父級,所以 List 型別物件可以儲存一個 ArrayList
物件。
ArrayList<datatype> nameList = new ArrayList<datatype>();
上面的語法定義了一個 ArrayList
物件並例項化 ArrayList
型別。我們還可以定義 List 並在以後例項化它。
Java 中的陣列是什麼
另一方面,陣列
非常簡單,幾乎可以在所有程式語言中找到。我們可以在 Java 中定義不同資料型別的陣列。
與列表類似,陣列也不限於原始資料型別,我們可以建立具有任何複雜資料型別的陣列。
陣列可以直接定義,也可以在 Java 中動態例項化。Java 陣列繼承物件類並實現可克隆和可序列化的介面。
下面給出了在 Java 中宣告和例項化陣列的語法。
datatype nameArr[] = new datatype[size];
我們還可以使用稍微不同的語法,如下所示。
datatype[] nameArr = new datatype[size];
請注意,我們也可以定義一個陣列並在以後例項化它。
Java 中列表和陣列的區別
- 陣列是靜態的且大小固定。另一方面,列表是動態且可調整大小的。Java 負責根據需要調整列表的大小。
- 例項化時,我們必須給出陣列的大小,而列表不需要固定大小。
- 在效能上,陣列比列表快。
- 我們必須使用一種方法來獲取列表元素,而陣列元素可以使用方括號來檢索。
- 陣列可以是多維的,但列表總是一維的。但是,我們可以建立巢狀列表。
- 簡單的賦值運算子不能將元素新增到列表中。我們有一種方法可以將元素新增到列表中。在陣列中,我們可以使用賦值運算子來儲存元素。
在 Java 中建立陣列列表
我們可以像建立任何其他資料型別或資料結構的列表一樣在 Java 中建立陣列列表。但是,我們不能例項化一個列表物件;因此,我們將為此操作選擇特定的列表型別。
在建立陣列列表時,我們首先通過傳遞列表包含的資料型別來定義列表。然後我們使用預設建構函式例項化列表。
一旦建立並例項化了陣列列表,我們就可以使用 List
介面提供的 add()
方法將陣列儲存到列表中。
我們在下面的 Java 程式中建立了一個用於儲存整數陣列的列表。請注意,我們使用了 Integer
物件型別而不是原始整數型別。
原因是 Java 將原始資料型別轉換為物件型別,然後再將它們儲存在列表中。
我們使用了 ArrayList
來例項化一個物件。此外,我們建立了兩個固定大小的整數陣列,並將整數任意儲存到其中。
你可以建立任何型別和大小的陣列,但你應該記住使用你的物件型別更改列表定義。
最後,我們將陣列新增到列表中,並使用 for
迴圈遍歷列表和陣列。另外,請注意,我們必須使用 List 的 get()
方法來檢索列表元素,在本例中為整數陣列。
程式碼如下。
import java.util.*;
public class ListofArrays {
public static void main(String[] args) {
List<Integer[]> list;
list = new ArrayList<Integer[]>();
// Let us create 2 arrays of type Integer
Integer[] arr1 = new Integer[5];
Integer[] arr2 = new Integer[5];
// arr1 stores numbers from 0 to 4
// arr2 stores the numbers from 5 to 9
for (int i = 0; i < 5; i++) {
arr1[i] = i;
}
for (int i = 0; i < 5; i++) {
arr2[i] = i + 5;
}
// adding both arrays to list
list.add(arr1);
list.add(arr2);
// print elements of the list
for (int i = 0; i < list.size(); i++) {
Integer[] arr = list.get(i);
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[j] + " ");
}
System.out.println();
}
}
}
輸出:
0 1 2 3 4
5 6 7 8 9
由於我們將從 0 開始的五個整數儲存到第一個陣列中,並將接下來的五個整數儲存到第二個陣列中,因此我們得到了預期的輸出。
在將陣列新增到列表之前,我們必須小心定義和例項化陣列。我們不能新增尚未例項化的陣列。
但是,不要誤解帶有 null 元素的未例項化陣列。我們仍然可以將 null 元素新增到列表中。
此外,請確保你不會犯常見錯誤,例如例項化 List 物件、將未例項化的陣列新增到陣列列表等。
まとめ
由於它們強大的實現和它們提供的工具,我們經常在 Java 中遇到這些列表。另一方面,陣列可能是程式設計中最常用的資料結構。
因此,我們必須學習如何建立陣列列表。
相關文章 - Java Array
- 如何在 Java 中以十六進位制字串轉換位元組陣列
- 如何在 Java 中連線兩個陣列
- 用 Java 從陣列中刪除重複項
- 在 Java 中對陣列進行切片
- 在 Java 中不使用 sort() 方法對陣列進行排序
- Java 中的列表與陣列