如何将ArrayList存储在二维数组中?
我已经尝试过这样,但它不会起作用:
ArrayList<Integer> arrList = new ArrayList<Integer>();
ArrayList<Integer>[][] arr = new ArrayList<Integer>[9][9];
但它甚至不会让我声明ArrayList-Array。
有没有办法将列表存储在二维数组中?
提前致谢!
答案 0 :(得分:1)
您无法在Java中创建泛型类型的数组。但这会编译:
ArrayList<Integer> arrList = new ArrayList<Integer>();
ArrayList<Integer>[][] arr = (ArrayList<Integer>[][]) new ArrayList[9][9];
arr[0][0] = arrList;
为什么不能创建这些数组?根据泛型常见问题解答,because of this problem:
Pair<Integer,Integer>[] intPairArr = new Pair<Integer,Integer>[10]; // illegal
Object[] objArr = intPairArr;
objArr[0] = new Pair<String,String>("",""); // should fail, but would succeed
答案 1 :(得分:0)
假设您想要ArrayList
内的ArrayList
而另一个ArrayList
,您只需在类型声明中指定:
ArrayList<ArrayList<ArrayList<Integer>>> foo = new ArrayList<ArrayList<ArrayList<Integer>>>();
可以通过以下方式访问条目:
Integer myInt = foo.get(1).get(2).get(3);
只要警惕边界 - 如果你试图访问越界索引,你会看到抛出异常。