首页 > 解决方案 > 如何在列表中迭代> 在 java 中设置它们的值,就像我们在普通的 int a[i][j] 矩阵类型中所做的那样

问题描述

我正在尝试使用 arrayList,因为它在许多编码比赛中被问到。我想熟悉 arraylist,就像我熟悉普通的 int 数组一样。它需要 2 个不同的数组列表,然后首先我们将元素添加到一个数组列表中,该数组列表用于行元素,另一个用于列元素。

List<List<Integer>> arr = new ArrayList<List<Integer>>();
List<Integer> arrCol = new ArrayList<Integer>();
Scanner scn = new Scanner(System.in);
for (int i = 0; i < arr.size(); i++) {
    for(int j = 0; j < arrCol.size(); j++) {
        int x = scn.nextInt();
        arrCol.add(j, x);
    }
    arr.add(i, arrCol);
}

标签: javamatrixarraylist

解决方案


您可以像使用两个 for 循环处理二维数组一样执行此操作:

int rowSize = 5;
int colSize = 3;
List<List<Integer>> arr = new ArrayList<List<Integer>>();
for (int i = 0; i < rowSize; i++) {
    List<Integer> arrRow = new ArrayList<Integer>();
    for (int j = 0; j < colSize; j++) {
        int x = scn.nextInt();
        arrRow.add(x);
    }
    arr.add(arrRow);
}

您可以将上述代码与此相关联:

int rowSize = 5;
int colSize = 3;
int[][] arr = new int[rowSize][colSize];
for (int i = 0; i < rowSize; i++) {
    for (int j = 0; j < colSize; j++) {
        int x = scn.nextInt();
        arr[i][j] = x;
    } 
}

从该列表中获取数据更简单。对于上面的第二个代码(使用数组),我们可以使用以下方法打印二维数组的所有值:

for (int i = 0; i < rowSize; i++) {
    for (int j = 0; j < colSize; j++) {
        System.out.print(arr[i][j] + " ");
    }
    System.out.println();
}

在arraylist的情况下,类似的事情可以做:

for (int i = 0; i < rowSize; i++) {
    for (int j = 0; j < colSize; j++) {
        System.out.print(arr.get(i).get(j) + " ");
    }
    System.out.println();
}

推荐阅读