如何在Java中轉換List和Array?


List介面是一個集合,它儲存一系列元素。ArrayList是List介面最流行的實現。List允許使用者精確控制元素在List中的插入位置。這些元素可以透過索引訪問並進行搜尋。ArrayList是List介面最常用的實現。

陣列是一種資料結構,它儲存相同型別元素的固定大小的順序集合。陣列用於儲存資料集合,但通常將陣列視為相同型別變數的集合更有用。

List介面提供使用toArray()方法將列表轉換為陣列的方法。其中一個toArray()方法接受另一個物件陣列,這有助於將列表轉換為特定型別的陣列。否則,我們可以使用不帶引數的toArray()來獲取Object陣列。在本文中,我們將介紹List的toArray()方法,並透過完整的示例演示如何使用toArray()方法從列表中獲取陣列。

1. 使用不帶引數的toArray()方法。

Object[] toArray()

說明

  • 返回一個包含此列表中所有元素的陣列,順序正確(從第一個元素到最後一個元素)。

  • 返回的陣列是“安全的”,因為此列表不會維護對它的任何引用。(換句話說,即使此列表由陣列支援,此方法也必須分配一個新陣列)。因此,呼叫者可以自由修改返回的陣列。

  • 此方法充當基於陣列和基於集合的API之間的橋樑。

返回值

一個包含此列表中所有元素的陣列,順序正確。

2. 使用帶陣列引數的toArray()方法。

<T> T[] toArray(T[] a)

說明

  • 返回一個包含此列表中所有元素的陣列,順序正確(從第一個元素到最後一個元素)。

  • 返回的陣列是“安全的”,因為此列表不會維護對它的任何引用。

  • 此方法必須分配一個新陣列,即使此列表由陣列支援。

  • 因此,呼叫者可以自由修改返回的陣列。

  • 此方法充當基於陣列和基於集合的API之間的橋樑。

型別引數

  • T - 陣列的執行時型別。

引數

  • a - 要將此列表的元素儲存到的陣列,如果它足夠大;否則,將為此目的分配一個相同執行時型別的新陣列。

返回值

包含此列表元素的陣列。

丟擲異常

  • ArrayStoreException - 如果指定陣列的執行時型別不是此列表中每個元素的執行時型別的超型別。

  • NullPointerException - 如果指定的陣列為null。

Arrays類提供了一個asList()方法來獲取包含陣列所有元素的列表。

public static <T> List<T> asList(T... a)

型別引數

  • T - 元素的執行時型別。

引數

  • a - 列表將以此陣列為後盾。

返回值

指定陣列的列表檢視。

示例1

以下示例演示了toArray()和Arrays.asList()方法的使用:

package com.tutorialspoint;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CollectionsDemo {
   public static void main(String[] args) {
      String[] array = {"A", "B", "C"};

      // array to List conversion
      List<String> list = new ArrayList<>(Arrays.asList(array));
      System.out.println("List: " + list);

      // list to array conversion
      Object[] items = list.toArray();

      for (Object object : items) {
         System.out.print(object + " ");
      }
   }
}

輸出

這將產生以下結果:

List: [A, B, C]
A B C

示例2

以下另一個示例演示了使用特定型別陣列的toArray()和Arrays.asList()方法:

package com.tutorialspoint;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class CollectionsDemo {
   public static void main(String[] args) {
      String[] array = {"A", "B", "C"};

      // array to List conversion
      List<String> list = new ArrayList<>(Arrays.asList(array));
      System.out.println("List: " + list);

      // list to array conversion
      String[] strings = list.toArray(new String[0]);

      for (String string : strings) {
         System.out.print(string + " ");
      }
   }
}

輸出

這將產生以下結果:

List: [A, B, C]
A B C

更新於:2022年5月26日

850 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.