如何在Java中循环使用2D ArrayList并填充它?

时间:2015-11-03 21:35:44

标签: java arrays arraylist

我正在尝试在Java中使用2D数组列表。 我有定义:

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

如何循环播放并输入从1开始的数字? 我知道我可以使用以下方法访问特定索引:

myList.get(i).get(j)

哪个会获得价值。但是我如何添加到Matrix?

由于

3 个答案:

答案 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);
}