如何在 Java 中将列表转换为数组

Hassan Saeed 2023年10月12日
  1. 在 Java 中将列表转换成数组
  2. 在 Java 中使用 toArray() 将列表转换为引用类型的数组
  3. 在 Java 中使用 stream() 将一个列表转换为一个数组
如何在 Java 中将列表转换为数组

本教程讨论了在 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));
 }
}

相关文章 - Java Array