java - 如何在列表中迭代> 在 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);
}
解决方案
您可以像使用两个 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();
}
推荐阅读
- node.js - 有什么方法可以等待 puppeteer 中 page.click() 之后添加动态内容
- sql - 下周五取回,除非已经是周五
- sql - 链接服务器上的 TRUNCATE TABLE 失败
- javascript - Javascript 中的平均值
- typescript - Typescript 忽略 null 或 undefined 作为函数返回的可能性
- visual-studio-code - 有一种方法可以在vscode中的` `(重音)中语法高亮GraphQl TypeDef?
- php - 贝宝支付 - 如何使用贝宝 PHP SDK 应用访问令牌
- node.js - Socket IO - 服务器未与我的反应客户端连接
- javascript - 绝对元素的不同位置取决于使用的设备或浏览器
- bash - 将特定字符从文本文件的前两行复制到变量