通过从Java中的ArrayList转换返回一个数组

时间:2013-07-21 23:11:32

标签: java arraylist

我需要创建一个方法,通过从ArrayList转换来返回一个int数组。这是我的代码:

public int[] getDestSets()
{
    int[] array = new int[destSet.size()];
    destSet.toArray(array);
    return array;
}

destSet是一个整数ArrayList。我得到错误“ArrayList类型中的方法toArray(T [])不适用于参数(int [])”。任何人都可以给我一个提示吗?谢谢!

3 个答案:

答案 0 :(得分:1)

int []数组不能“装箱”到Integer []数组。你必须使用for循环。有关详细信息,请参阅Why don't Java Generics support primitive types?

答案 1 :(得分:1)

虽然包装类Integer将自动取消装箱到int原语,但数组/列表不会自动取消装箱到int数组。

你必须这么做:

public int[] getDestSets() {
    int[] array = new int[destSet.size()];
    int x = 0;
    for (Integer i : destSet)
       array[x++] = i;
    return array;
}

答案 2 :(得分:1)

您可以尝试使用Apache Commons Lang库中的ArrayUtils类。它需要两个步骤。首先将ArrayList转换为包装器对象数组(Integer [])。之后,您可以使用ArrayUtils.toPrimitive()将其转换为int(int [])数组。