java - (在 Java 中拆箱原始数组

标签 java android collections boxing

在 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/

相关文章:

android - android中PreferenceFragment的自定义字体

java - 解析对象 try/catch 异常错误

regex - 删除 MongoDB 集合中字符串字段值中的所有空格

java - 使用 Smack 从 XMPP PubSub 节点检索最后一个项目总是只返回一个项目

java - 捕获 AuthenticationProvider 中抛出的异常

android - 在 ListActivity 中显示 SQL 连接的结果

java - 使用 Java 8 按两个字段对对象进行分组

java - Java排序List时出现错误 "no suitable method found"

java - JTextField 和 HTML 标签

java - 创建一个映射/缓存,它将使用默认构造函数生成的对象作为新键