为了账号安全,请及时绑定邮箱和手机立即绑定

将Integer []转换为int []的最佳方法是什么?

将Integer []转换为int []的最佳方法是什么?

拉莫斯之舞 2021-04-16 22:19:23
将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();


查看完整回答
反对 回复 2021-04-18
?
莫回无

TA贡献1865条经验 获得超7个赞

无法直接对其进行转换。您将需要遍历列表并取消对每个项目的装箱。Eran的解决方案很短,并且利用了Java 8功能。如果您没有Java 8,那么您的解决方案也一样。


查看完整回答
反对 回复 2021-04-18
  • 2 回答
  • 0 关注
  • 393 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信