如何将Integer []转换为int []?

时间:2011-02-01 14:06:01

标签: java

// how to convert this
Integer[] array = {1, 2};

// to this
int[] array = {1, 2};

我正在处理具有第二种形式的代码,我需要修改数组的读取方式。我不太了解Java,我宁愿只转换风险错误。

3 个答案:

答案 0 :(得分:10)

您可以使用commons-lang ArrayUtils.toPrimitive(array)

如果您出于某种原因不想包含commons-lang,那么这是该方法的代码。但是,只包含依赖项是一个更好的选择 - 它有许多你最终需要的额外功能。

public static final int[] EMPTY_INT_ARRAY = new int[0];

public static int[] toPrimitive(Integer[] array) {
    if (array == null) {
       return null;
    }
    if (array.length == 0) {
       return EMPTY_INT_ARRAY;
    }
    int[] result = new int[array.length];
    for (int i = 0; i < array.length; ++i) {
        result[i] = array[i].intValue();
    }
    return result;
}

答案 1 :(得分:2)

我不确定你期望的是什么错误,两者之间的差异很小。转换的一种方法是:

Integer[] array = {1, 2};

int[] array2 = new int[array.length];

for (int i = 0; i < array.length; i++ ) {
   array2[i] = array[i];
}

答案 2 :(得分:2)

来自Ints.toArray(Collection<Integer> col)

google-guava。如果你不想使用外部依赖,那么我认为你必须推出自己的