我正在尝试在Java中使用2D arrayLists。我有这样的定义:
ArrayList<ArrayList<Integer>> myList = new ArrayList<ArrayList<Integer>>();如何遍历它并输入从1开始的数字?我知道我可以通过使用以下命令访问特定的索引:
myList.get(i).get(j)它将获得该值。但是我如何添加到矩阵中呢?
谢谢
发布于 2015-11-04 05:39:49
您可以使用嵌套的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 listA注意:如果myList最初是未填充的,则使用.size() 的循环将不会在中工作,因为您不能在不包含索引的ArrayList上使用.get(SOME_INDEX)。您将需要从0循环到您希望添加的值的数量,在第一个循环中创建一个新列表,使用.add(YOUR_VALUE)将每次迭代的新值附加到这个新列表,然后将这个新列表添加到myList。请参阅Ken's answer以获取一个完美的示例。
发布于 2015-11-04 05:39:59
如果您使用的是Java1.5之前的版本,请使用for-each循环。
for(ArrayList<Integer> row : myList) {
for(Integer intValue : row) {
// access "row" for inside arraylist or "intValue" for integer value.
}
}发布于 2015-11-04 05:51:51
假设该矩阵未被初始化,
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);
}https://stackoverflow.com/questions/33509520
复制相似问题