访问List <int []> </int []>时出现ArrayIndexOutOfBoundsException

时间:2014-12-10 22:28:52

标签: java

为什么我在执行以下代码时获得Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException ERRO

int[] things={11,22,33,44};
List<int[]>Listdata = Arrays.asList(things);
int[] n=Listdata.get(1);
System.out.println(n[1]);

如果我放get(0)

,它可以正常工作

1 个答案:

答案 0 :(得分:3)

int[]数组最自然地映射到List<Integer>。不幸的是,there is no built-in way to convert directly from an int array to an Integer list,由于拳击是必需的。您必须手动构建List

int[] things = {11, 22, 33, 44};

List<Integer> list = new ArrayList<>();
for (int i: things) {
    list.add(i);
}

int n = list.get(1);
System.out.println(n);

如果您愿意依赖第三方图书馆电话,那么Google出色的Guava library会提供一种方便的方法。

int[] things = {11, 22, 33, 44};
List<Integer> list = Ints.asList(things);
int n = list.get(1);
System.out.println(n);

或者,如果您的目标只是获取List个数字,则可以跳过中间数组。

List<Integer> list = Arrays.asList(11, 22, 33, 44);