java - 如何使用arraylist访问整数数组
问题描述
错误是,它在Collections.addAll(in,n)
. 我该如何解决这个问题?
ArrayList<Integer> in = new ArrayList<>(); //declared array in integer type
int[] n = getResources().getIntArray(R.array.number12);
Collections.addAll(in,n); //this is not working showing error,it is not accepting
整数.xml
<resources>
<integer-array name="number12">
<item>735895698</item>`
<item>814895046</item>``
</integer-array>
</resources>
解决方案
这不起作用,因为int[]
-array 不是预期的Integer[]
-array Collections.addAll()
。
这里有两种从数组创建列表的方法。这使用了一个 for-each 循环,该循环遍历数组,然后将int
数组中的每个添加到list
:
int[] n = getResources().getIntArray(R.array.number12);
List<Integer> list = new ArrayList<>(n.length);
for(int i : n){
list.add(i);
}
另一种方式,是使用Java8中引入的Arrays.stream()
:
int[] n = getResources().getIntArray(R.array.number12);
List<Integer> list = Arrays.stream(n)
.boxed()
.collect(Collectors.toList());
如果您明确想要获得一个,ArrayList
您可以使用以下内容:
int[] n = getResources().getIntArray(R.array.number12);
List<Integer> list = Arrays.stream(n)
.boxed()
.collect(Collectors.toCollection(ArrayList::new));
推荐阅读
- c# - 保护多个线程同时访问的字段
- button - 引导按钮不想调整大小
- python - 无法使用硒单击 IMDB 的“加载更多”按钮
- c# - 如何在我的其他应用程序中使用自定义 SSO?
- wordpress - 如何在 WordPress 网站上重新启动/重新播放动画 .gif?
- maya - 如何在 Maya 的 MEL 中获取拖放文件的路径
- postgresql - Entity Framework Core:在没有单独外键约束的两个表之间使用什么关系
- c# - 如何在突围中重生桨和球 - Unity 3D C#
- algorithm - 递归关系和重叠子问题
- c# - 将文件从 C# WPF 传输到 C 客户端