我正在尝试在Java中使用2D数组列表。 我有定义:
ArrayList<ArrayList<Integer>> myList = new ArrayList<ArrayList<Integer>>();
如何循环播放并输入从1开始的数字? 我知道我可以使用以下方法访问特定索引:
myList.get(i).get(j)
哪个会获得价值。但是我如何添加到Matrix?
由于
答案 0 :(得分:5)
您可以使用嵌套for循环。 i循环遍历外部ArrayList,j循环遍历myList
包含的每个单独的ArrayList
for (int i = 0; i < myList.size(); i++)
{
for (int j = 0; j < myList.get(i).size(); j++)
{
// do stuff
}
}
修改,然后将// do stuff
替换为
myList.get(i).add(new Integer(YOUR_VALUE)); // append YOUR_VALUE to end of list
注意:如果最初未填充myList,则使用.size()
循环,因为您无法在{{{}上使用.get(SOME_INDEX)
1}}不包含索引。您需要从0循环到要添加的值的数量,在第一个循环中创建一个新列表,使用ArrayList
将每次迭代的新值附加到此新列表,然后添加此新列表到.add(YOUR_VALUE)
。有关完美示例,请参阅Ken's answer。
答案 1 :(得分:5)
如果您使用的是1.5之前的Java版本,请使用for-each循环。
myList
答案 2 :(得分:2)
假设矩阵未初始化,
int m = 10, n = 10;
ArrayList<ArrayList<Integer>> matrix = new ArrayList<ArrayList<Integer>>();
for (int i = 0; i < m; i++) {
List<Integer> row = new ArrayList<Integer>();
for (int j = 0; j < n; j++) {
row.add(j);
}
matrix.add(row);
}