簡體   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