Java 中的陣列列表

Mohd Mohtashim Nawaz 2023年10月12日
  1. Java 中的列表是什麼
  2. Java 中的陣列是什麼
  3. Java 中列表和陣列的區別
  4. 在 Java 中建立陣列列表
  5. まとめ
Java 中的陣列列表

Java 是一種流行且功能強大的程式語言,用於多個領域。因此,我們經常會遇到希望將資料儲存為有序集合的情況。

Java 提供了 List 介面來將不同的資料格式儲存為一個名稱下的有序集合。

List 介面是許多子類的父介面。例如,ArrayListLinkedListStackQueue 實現 List 介面。

另一方面,陣列是另一種流行的儲存具有相同資料型別的資料集合的方法。陣列簡單且易於處理。

我們可以輕鬆建立不同資料型別的陣列並使用索引執行操作。本文將瞭解 Java 中 Lists 和陣列的區別,並在 Java 中建立陣列列表。

Java 中的列表是什麼

在 Java 中,List 是具有相同資料型別的有序資料集合。Java 列表是基於索引的,可以使用索引訪問其中的元素。

我們可以進行插入、刪除、更新等操作。

Java 列表不限於儲存原始資料型別。我們可以在列表中儲存物件、陣列和任何其他複雜的資料型別,我們應該注意,列表甚至可以儲存空元素。

由於 List 是一個介面,我們不能直接例項化 List 型別的物件。

相反,Java 有各種 List 型別,例如 ArrayListLinkedList 等。這些類實現 List 介面並提供每種型別的特定功能。

我們還可以通過實現 List 介面並定義其方法來建立我們的列表型別。

我們可以定義和例項化一個 ArrayList,如下所示。

List<datatype> nameList = new ArrayList<datatype>();

注意我們不能例項化一個介面,但是我們可以定義一個介面的物件。因此,我們需要例項化一個特定的列表型別,例如 ArrayListLinkedList 等。

我們可以使用下面給出的不同語法。由於 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 中列表和陣列的區別

  1. 陣列是靜態的且大小固定。另一方面,列表是動態且可調整大小的。Java 負責根據需要調整列表的大小。
  2. 例項化時,我們必須給出陣列的大小,而列表不需要固定大小。
  3. 在效能上,陣列比列表快。
  4. 我們必須使用一種方法來獲取列表元素,而陣列元素可以使用方括號來檢索。
  5. 陣列可以是多維的,但列表總是一維的。但是,我們可以建立巢狀列表。
  6. 簡單的賦值運算子不能將元素新增到列表中。我們有一種方法可以將元素新增到列表中。在陣列中,我們可以使用賦值運算子來儲存元素。

在 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 List