如何在 Java 中將列表轉換為陣列
Hassan Saeed
2023年10月12日
本教程討論了在 Java 中把一個列表轉換為陣列的方法。
在 Java 中將列表轉換成陣列
此方法只是建立一個與列表大小相同的新陣列,並在列表上迭代,向陣列中填充元素。下面的例子說明了這一點。
import java.util.*;
public class MyClass {
public static void main(String args[]) {
List<Integer> list = new ArrayList();
list.add(1);
list.add(2);
int[] array = new int[list.size()];
for (int i = 0; i < list.size(); i++) array[i] = list.get(i);
}
}
結果陣列包含了列表中的所有元素。注意,如果生成的陣列是非原生型別,則不應使用此方法。
在 Java 中使用 toArray()
將列表轉換為引用型別的陣列
如果列表包含引用型別的元素,如類的物件,則使用該方法。我們可以使用內建的 toArray()
方法將這種型別的列表轉換為陣列。下面的例子說明了這一點。
import java.util.*;
public class MyClass {
public static void main(String args[]) {
// Define the Foo class
class Foo {
private int value;
public Foo(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
// Create instances of Foo
Foo obj1 = new Foo(42);
Foo obj2 = new Foo(99);
// Create a List of Foo objects
List<Foo> list = new ArrayList<>();
// Add the obj1 and obj2 to the list
list.add(obj1);
list.add(obj2);
// Convert the list to an array
Foo[] array = list.toArray(new Foo[0]);
// Print the values from the array
for (Foo foo : array) {
System.out.println("Value: " + foo.getValue());
}
}
}
在 Java 中使用 stream()
將一個列表轉換為一個陣列
對於 Java 8 及以上的版本,我們也可以使用 Stream API 的 stream()
方法在 Java 中將列表轉換為陣列。下面的例子說明了這一點。
import java.util.*;
public class MyClass {
public static void main(String args[]) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
Integer[] integers = list.stream().toArray(Integer[] ::new);
// Print the converted array
System.out.println(Arrays.toString(integers));
}
}