Java 中可以将数组转换为列表,然后再转换回数组吗?
List 提供了两种将 List 转换为数组的方法。
1. 使用无参数的 toArray() 方法。
Object[] toArray()
返回值
一个包含此列表中所有元素的数组,元素顺序正确。
2. 使用带数组参数的 toArray() 方法。
<T> T[] toArray(T[] a)
类型参数
T − 数组的运行时类型。
参数
a − 将此列表的元素存储到的数组,如果数组足够大;否则,将为此目的分配一个具有相同运行时类型的新的数组。
返回值
包含此列表元素的数组。
抛出异常
ArrayStoreException − 如果指定数组的运行时类型不是此列表中每个元素的运行时类型的超类型。
NullPointerException − 如果指定的数组为空。
为了将数组转换为列表,我们可以使用 Arrays.asList() 方法获取包含数组所有元素的列表。
public static <T> List<T> asList(T... a)
类型参数
T − 元素的运行时类型。
参数
a − 列表将以此数组为后盾。
返回值
指定数组的列表视图。
示例
以下示例展示了 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) { Integer[] array = {1, 2, 3, 4, 5}; // array to List conversion List<Integer> 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 + " "); } System.out.println(); // list to array conversion Integer[] numbers = list.toArray(new Integer[0]); for (int number : numbers) { System.out.print(number + " "); } } }
输出
这将产生以下结果 −
List: [1, 2, 3, 4, 5] 1 2 3 4 5 1 2 3 4 5
广告