繁体   English   中英

在2D Array Java中存储ArrayList

[英]Storing an ArrayList in an 2d Array Java

如何在二维数组中存储ArrayList?

我已经尝试过这种方法,但是无法正常工作:

ArrayList<Integer> arrList = new ArrayList<Integer>();
ArrayList<Integer>[][] arr = new ArrayList<Integer>[9][9];

但它甚至不让我声明ArrayList-Array。

有没有一种方法可以将列表存储在二维数组中?

提前致谢!

您无法在Java中创建泛型类型的数组。 但这会编译:

ArrayList<Integer> arrList = new ArrayList<Integer>();
ArrayList<Integer>[][] arr = (ArrayList<Integer>[][]) new ArrayList[9][9];
arr[0][0] = arrList;

为什么不能创建这些数组? 根据泛型常见问题解答, 由于此问题

Pair<Integer,Integer>[] intPairArr = new Pair<Integer,Integer>[10]; // illegal 
Object[] objArr = intPairArr;  
objArr[0] = new Pair<String,String>("",""); // should fail, but would succeed 

假设您想在另一个ArrayList内的ArrayList内包含一个ArrayList ,则可以在类型声明中简单地指定它:

ArrayList<ArrayList<ArrayList<Integer>>> foo = new ArrayList<ArrayList<ArrayList<Integer>>>();

可以通过以下方式访问条目:

Integer myInt = foo.get(1).get(2).get(3);

只是要警惕边界-如果您尝试访问越界索引,则会看到抛出异常的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM