将Integer数组转换为int数组的最佳方法是什么。一个简单的解决方案是:public int[] toPrimitiveInts(Integer[] ints) { int[] primitiveInts = new int[ints.length]; for(int i = 0; i < ints.length; i++) { primitiveInts[i] = ints[i] == null ? 0 : ints[i]; } return primitiveInts;}在上面的示例中,我为对象/包装器的默认值为null,而int为0的事实采用0了null值。此答案显示了如何将int []转换为Integer []但是我找不到将Integer []转换为int []的简单方法。
2 回答
九州编程
TA贡献1785条经验 获得超4个赞
您可以使用Java 8 Stream:
如果输入数组没有nulls:
Integer[] integerArr = ...
int[] arr = Arrays.stream(integerArr).mapToInt(Integer::intValue).toArray();
并处理nulls:
Integer[] integerArr = ...
int[] arr = Arrays.stream(integerArr).mapToInt(i -> i != null ? i : 0).toArray();
莫回无
TA贡献1865条经验 获得超7个赞
无法直接对其进行转换。您将需要遍历列表并取消对每个项目的装箱。Eran的解决方案很短,并且利用了Java 8功能。如果您没有Java 8,那么您的解决方案也一样。
添加回答
举报
0/150
提交
取消