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

时间:2015-11-29 06:11:05

标签: java arrays arraylist

我试图将ArrayList Integer转换为Integer[]

Integer[] finalResult = (Integer[]) result.toArray();

但我得到了一个例外

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;

请帮帮我。

6 个答案:

答案 0 :(得分:8)

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

Integer[] finalResult = new Integer[result.size()];
result.toArray(finalResult);

或者,作为一个单行:

Integer[] finalResult = result.toArray(new Integer[result.size()]);

答案 1 :(得分:5)

您无法将List转换为数组,因为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

答案 2 :(得分:2)

List.toArray()返回一个Object数组。请改用List.toArray(T[])

Integer[] finalResult = (Integer[]) result.toArray(new Integer[result.size()]);

答案 3 :(得分:2)

您需要初始化数组。试试这个

Integer[] finalResult = new Integer[result.size()];
finalResult = result.toArray(finalResult);

答案 4 :(得分:2)

你可以通过多种方式实现这一目标:

第一种方法

abstract class Ar {
       abstract int add(int a, int b);
      }


class Adder extends Ar {

     int add(int a,int b){
    return a+b;
     }

   public static void main(String[] args)
     {
        Adder a = new Adder();

      }
   } 

class Sol {

    public static void main(String atgs[])
   {
      Adder aa = new Adder();
      System.out.println(aa.getClass().getSuperclass().getSimpleName());
      System.out.println(aa.add(10, 10));
}
}

示例:

List<T> list = new ArrayList<T>();

T [] countries = list.toArray(new T[list.size()]);

第二种方法

List<String> list = new ArrayList<String>();

list.add("India");
list.add("Switzerland");
list.add("Italy");
list.add("France");

String [] countries = list.toArray(new String[list.size()]);

第三种方法

Foo[] array = new Foo[list.size()];
list.toArray(array); // fill the array

您还可以在此处找到一些示例代码 - http://www.tutorialspoint.com/java/util/arraylist_toarray.htmhttp://examples.javacodegeeks.com/core-java/util/list/java-list-to-array-example/

答案 5 :(得分:0)

这里的答案是在 list.size() 方法中使用 toArray() 出于某种根本不需要的原因。您可以只传递一个大小为 0 的空整数数组。

简单易行。看一看:

List<Integer> yourList = List.of(1, 2, 3, 4, 5);
Integer[] intArray = yourList.toArray(new Integer[0]);