在 Android Java 世界中,是否有一种直接(最好是一次调用)的方法来转换 int
的数组?到ArrayList<Integer>
然后回来?打电话toArray()
在 ArrayList 上返回一个 Integer
的数组- 不是我想要的。
我可以通过循环轻松地手动完成(事实上,我已经这样做了)。我想知道库/语言是否支持相同的内容。
编辑:谢谢大家,我已经写了我自己的 boxer 和 unboxer。我很惊讶语言/RTL 设计者自己没有想到这一点,尤其是原始类型在设计上不符合集合的条件。
最佳答案
使用 Guava ( Ints.asList(int...) 和 Ints.toArray(Collection<Integer>) ):
int[] intArray = ...
List<Integer> intArrayAsList = Ints.asList(intArray);
int[] intArray2 = Ints.toArray(intArrayAsList);
请注意,与 Arrays.asList
一样,Ints.asList
返回一个列表,该列表是给定数组的 View 。您不能向其中添加或从中删除,但可以设置
特定索引处的值。如果需要,您还可以将其复制到新的 ArrayList
:
List<Integer> arrayList = Lists.newArrayList(Ints.asList(intArray));
Guava 对所有原始类型都有相同的方法。
关于java - (在 Java 中拆箱原始数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6064522/