如何在java中将List <Integer>转换为Integer []?

Ken*_*nny 7 java arrays arraylist

我试图转换一个ArrayListIntegerInteger[]

Integer[] finalResult = (Integer[]) result.toArray();
Run Code Online (Sandbox Code Playgroud)

但我得到了一个例外

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
Run Code Online (Sandbox Code Playgroud)

请帮帮我.

Ted*_*opp 9

您需要使用toArray()接受泛型参数的版本:

Integer[] finalResult = new Integer[result.size()];
result.toArray(finalResult);
Run Code Online (Sandbox Code Playgroud)

或者,作为一个班轮:

Integer[] finalResult = result.toArray(new Integer[result.size()]);
Run Code Online (Sandbox Code Playgroud)


Pau*_*ton 5

您无法List转换为数组,因为a List不是数组.这里有两种方法可以转换List<Integer>Integer[].

List<Integer> list = Arrays.asList(1, 2, 3);
Integer[] arr = list.toArray(new Integer[list.size()]);
Integer[] arr2 = list.stream().toArray(Integer[]::new); // Java 8 only
Run Code Online (Sandbox Code Playgroud)