首页 > 解决方案 > 如何使用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>

标签: javaandroid

解决方案


这不起作用,因为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));

推荐阅读