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