我需要创建一个方法,通过从ArrayList转换来返回一个int数组。这是我的代码:
public int[] getDestSets()
{
int[] array = new int[destSet.size()];
destSet.toArray(array);
return array;
}
destSet是一个整数ArrayList。我得到错误“ArrayList类型中的方法toArray(T [])不适用于参数(int [])”。任何人都可以给我一个提示吗?谢谢!
答案 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 [])数组。