(在Java中拆箱原始数组

2024-01-07

在Android Java世界中,是否有一种简单的(最好是一次调用)方法来转换数组int to an ArrayList<Integer>然后回来?呼唤toArray()ArrayList 返回一个数组Integer- 不完全是我想要的。

我可以通过循环轻松地手动完成此操作(事实上,已经这样做了)。我想知道库/语言是否支持相同的功能。

编辑:谢谢大家,我已经编写了自己的拳击手和拆箱手。我只是很惊讶语言/RTL 设计者自己没有想到这一点,特别是原始类型在设计上不符合集合条件。


装箱和拆箱(无需特殊库):

// Necessary Imports:
import java.util.*;
import java.util.stream.*;

// Integers:
int[] primitives = {1, 2, 3};
Integer[] boxed = Arrays.stream(primitives).boxed().toArray(Integer[]::new);
int[] unboxed = Arrays.stream(boxed).mapToInt(Integer::intValue).toArray();

// Doubles:
double[] primitives = {1.0, 2.0, 3.0};
Double[] boxed = Arrays.stream(primitives).boxed().toArray(Double[]::new);
double[] unboxed = Arrays.stream(boxed).mapToDouble(Double::doubleValue).toArray();

请注意,这需要Java 8 (流文档 https://docs.oracle.com/javase/8/docs/api/?java/util/stream/Stream.html).

对于任何不知道什么的人::意思是,它被用来制作一个方法参考 https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(在Java中拆箱原始数组 的相关文章

随机推荐