在 Java 中獲取整形陣列的 ArrayList

Mohammad Irfan 2023年10月12日
  1. 建立整數型別的 ArrayList
  2. 將整數元素新增到 ArrayList 中的索引
  3. 通過索引訪問 ArrayList 中的元素
  4. 整數陣列的 ArrayList
  5. ArrayList 訪問整數陣列元素
  6. ArrayList 的 ArrayList
  7. 總結
在 Java 中獲取整形陣列的 ArrayList

本教程介紹瞭如何在 Java 中獲取整數的 ArrayList,並列出了一些示例程式碼來理解該主題。

ArrayList 是一個動態或可調整大小的陣列。它是 Java 集合框架的一部分。ArrayList 用於克服普通陣列大小固定的問題。在本教程中,我們將學習如何建立整數 ArrayList

建立整數型別的 ArrayList

ArrayList 或任何其他集合不能儲存原始資料型別,例如 int。如果我們編寫如下所示的程式碼,那麼我們將得到一個編譯錯誤。

public class Demo {
  public static void main(String[] args) {
    ArrayList<int> arrList;
  }
}

輸出:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Syntax error, insert "Dimensions" to complete ReferenceType
	at snippet.Demo.main(Demo.java:7)

相反,我們使用包裝類將基元儲存在 ArrayList 中。每個原始資料型別都有一個對應的包裝類,代表相同型別的物件。對於 int 資料型別,包裝類稱為 Integer。因此,要建立一個整數 ArrayList,我們需要使用 Integer 包裝類作為其型別。

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
  }
}

我們現在可以使用類的 add() 方法將整數新增到 ArrayList

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
  }
}

ArrayList,就像普通陣列一樣,遵循從零開始的索引。我們可以在 add() 方法中指定要新增物件的索引。出現在該索引處的元素及其右側的所有元素將向右移動一位。

將整數元素新增到 ArrayList 中的索引

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
    arrList.add(1, 199); // Inserting 199 at index 1.
  }
}

通過索引訪問 ArrayList 中的元素

我們可以通過使用它們的索引來獲取單個 ArrayList 專案。將索引值傳遞給 get() 方法以獲取所需的元素。

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
    arrList.add(1, 199); // Inserting 199 at index 1.
    System.out.println("Element at index 1: " + arrList.get(1));
    System.out.println("Element at index 2: " + arrList.get(2));
  }
}

輸出:

Element at index 1: 199
Element at index 2: 7

我們還可以使用單個列印語句列印整個 ArrayList

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
    System.out.println("Printing the ArrayList: " + arrList);
    arrList.add(1, 199); // Inserting 199 at index 1.
    System.out.println("Printing the ArrayList: " + arrList);
  }
}

輸出:

Printing the ArrayList: [5, 7, 12]
Printing the ArrayList: [5, 199, 7, 12]

整數陣列的 ArrayList

我們可以建立一個 ArrayList,其中每個元素本身都是一個陣列。我們使用資料型別和方括號來建立一個新陣列。

類似地,我們使用 int[] 定義了 ArrayList 的型別。我們不能使用像 int 這樣的基元作為 ArrayList 型別,但我們可以使用 int[]。這是因為 Java 中的陣列是物件,而不是基元。並且 ArrayList 可以由任何物件型別(在我們的例子中為陣列)建立。

ArrayList<int[]> arrList = new ArrayList<int[]>();

我們可以執行我們上面討論的所有基本操作。我們需要使用 ArraystoString() 方法將陣列正確列印到控制檯。

import java.util.ArrayList;
import java.util.Arrays;
public class Demo {
  public static void main(String[] args) {
    ArrayList<int[]> arrList = new ArrayList<int[]>();

    int[] arr1 = {2, 4, 6};
    int[] arr2 = {3, 6, 9};
    int[] arr3 = {5, 10, 15};

    // Adding int arrays to the ArrayList
    arrList.add(arr1);
    arrList.add(arr2);
    arrList.add(arr3);

    // Fetching the array from the List
    int[] arrAtIdx1 = arrList.get(1);

    // Printing the fetched array using the toString() method of Arrays
    System.out.println("The Second array in the List is: " + Arrays.toString(arrAtIdx1));
  }
}

輸出:

The Second array in the List is: [3, 6, 9]

ArrayList 訪問整數陣列元素

我們還可以訪問 ArrayList 中存在的 int 陣列的各個元素。我們將使用陣列索引來做到這一點。例如,如果我們希望訪問第三個陣列的第二個元素,那麼我們將使用以下程式碼:

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<int[]> arrList = new ArrayList<int[]>();
    int[] arr1 = {2, 4, 6};
    int[] arr2 = {3, 6, 9};
    int[] arr3 = {5, 10, 15};

    // Adding int arrays to the ArrayList
    arrList.add(arr1);
    arrList.add(arr2);
    arrList.add(arr3);

    // Fetching the second element of the third array
    int[] thirdArr = arrList.get(2);
    int secondElement = thirdArr[1];
    System.out.println("Second Element of the Third Array is: " + secondElement);
  }
}

輸出:

Second Element of the Third Array is: 10

但是,我們需要額外的程式碼來列印陣列的整個 ArrayList

import java.util.ArrayList;
import java.util.Arrays;
public class Demo {
  public static void main(String[] args) {
    ArrayList<int[]> arrList = new ArrayList<int[]>();
    int[] arr1 = {2, 4, 6};
    int[] arr2 = {3, 6, 9};
    int[] arr3 = {5, 10, 15};

    // Adding int arrays to the ArrayList
    arrList.add(arr1);
    arrList.add(arr2);
    arrList.add(arr3);
    for (int i = 0; i < arrList.size(); i++) {
      int[] currArr = arrList.get(i);
      System.out.println("Array at index " + i + " is: " + Arrays.toString(currArr));
    }
  }
}

輸出:

Array at index 0 is: [2, 4, 6]
Array at index 1 is: [3, 6, 9]
Array at index 2 is: [5, 10, 15]

ArrayList 的 ArrayList

如上所述,陣列是固定長度的,但 ArrayLists 是動態的。我們可以建立一個由 Integer ArrayLists 組成的 ArrayList,而不是建立一個 int 陣列的 ArrayList。這樣,我們就不必擔心陣列中的空間不足。

ArrayList<ArrayList<Integer> > arrListOfarrLists = new ArrayList<ArrayList<Integer> >();

我們可以像以前一樣使用 add() 方法和 get() 方法。但是,我們需要一個迴圈來列印每個 ArrayList 元素。

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<ArrayList<Integer> > arrListOfarrLists = new ArrayList<ArrayList<Integer> >();
    // Creating individual ArrayLists
    ArrayList<Integer> arrList1 = new ArrayList<>();
    arrList1.add(2);
    arrList1.add(4);
    arrList1.add(6);
    ArrayList<Integer> arrList2 = new ArrayList<>();
    arrList2.add(3);
    arrList2.add(6);
    arrList2.add(9);
    ArrayList<Integer> arrList3 = new ArrayList<>();
    arrList3.add(5);
    arrList3.add(10);
    arrList3.add(15);
    // Adding ArrayLists to the ArrayList
    arrListOfarrLists.add(arrList1);
    arrListOfarrLists.add(arrList2);
    arrListOfarrLists.add(arrList3);
    // Fetching ArrayList
    ArrayList<Integer> listAtIdx1 = arrListOfarrLists.get(1);
    System.out.println("ArrayList present at index 1 is: " + listAtIdx1 + "\n");
    // Printing the entire ArrayList
    for (int i = 0; i < arrListOfarrLists.size(); i++)
      System.out.println("ArrayList at index " + i + " is " + arrListOfarrLists.get(i));
  }
}

輸出:

ArrayList present at index 1 is: [3, 6, 9]
ArrayList at index 0 is [2, 4, 6]
ArrayList at index 1 is [3, 6, 9]
ArrayList at index 2 is [5, 10, 15]

如果你希望訪問 ArrayList 的各個元素,請使用 get() 方法兩次。例如,如果你想要第三個 ArrayList 的第二個元素,則使用:

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<ArrayList<Integer> > arrListOfarrLists = new ArrayList<ArrayList<Integer> >();
    // Creating individual ArrayLists
    ArrayList<Integer> arrList1 = new ArrayList<>();
    arrList1.add(2);
    arrList1.add(4);
    arrList1.add(6);
    ArrayList<Integer> arrList2 = new ArrayList<>();
    arrList2.add(3);
    arrList2.add(6);
    arrList2.add(9);
    ArrayList<Integer> arrList3 = new ArrayList<>();
    arrList3.add(5);
    arrList3.add(10);
    arrList3.add(15);
    // Adding ArrayLists to the ArrayList
    arrListOfarrLists.add(arrList1);
    arrListOfarrLists.add(arrList2);
    arrListOfarrLists.add(arrList3);
    // Fetching second element of the third ArrayList
    ArrayList<Integer> thirdList = arrListOfarrLists.get(2);
    int secondElement = thirdList.get(1);
    System.out.print("second element of the third ArrayList is: " + secondElement);
  }
}

輸出:

second element of the third ArrayList is: 10

總結

ArrayList 可能是 Java 中最常用的集合。它是一種簡單的資料結構,用於儲存相同型別的元素。我們不能建立像 int 這樣的原始型別的 ArrayList。我們需要使用這些基元的包裝類。ArrayList 類提供了從列表中新增和獲取元素的便捷方法。我們還可以建立陣列的 ArrayListArrayListsArrayList。它們主要用於以二維矩陣格式或表格格式表示資料。最好使用 ArrayListsArrayList,因為它不會限制其大小。

相關文章 - Java ArrayList