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

将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 []的简单方法。



拉莫斯之舞
浏览 400回答 2
2回答

九州编程

您可以使用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();

莫回无

无法直接对其进行转换。您将需要遍历列表并取消对每个项目的装箱。Eran的解决方案很短,并且利用了Java 8功能。如果您没有Java 8,那么您的解决方案也一样。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java