如何在基元和装箱类型之间转换java数组

有时需要将基本类型转换为装箱类型。
要转换数组,可以使用流(在Java 8及更高版本中):

//版本 ≥ Java SE 8
int[] primitiveArray = {1, 2, 3, 4};
Integer[] boxedArray =
Arrays.stream(primitiveArray).boxed().toArray(Integer[]::new);

对于较低版本,可以通过迭代基元数组并将其显式复制到装箱数组:

//版本 < Java SE 8
int[] primitiveArray = {1, 2, 3, 4};
Integer[] boxedArray = new Integer[primitiveArray.length];
for (int i = 0; i < primitiveArray.length; ++i) {
boxedArray[i] = primitive
     Array[i]; //Each element is autoboxed here
}

类似地,装箱数组可以转换为其原始对应的数组:

//版本 ≥ Java SE 8
Integer[] boxedArray = {1, 2, 3, 4};
int[] primitiveArray =
Arrays.stream(boxedArray).mapToInt(Integer::intValue).toArray();

//版本 < Java SE 8
Integer[] boxedArray = {1, 2, 3, 4};
int[] primitiveArray = new int[boxedArray.length];
for (int i = 0; i < boxedArray.length; ++i) {
     primitiveArray[i] = boxedArray[i]; //Each element is outboxed here
}
日期:2020-06-02 22:15:16 来源:oir作者:oir