java - 如何在 Java 中打印二维数组和二维数组列表运行总和
问题描述
实现跨行(从左到右或从右到左)或列(从上到下或从下到上)产生运行总和 runningSum2DArray(int[][] array, int dir) 的方法/函数
方法的输入:一个 4x4 二维 int 数组和一个整数(左、右、上、下分别为 1、2、3 或 4)。
输出:根据方向产生运行和后的修改数组。
例如:如果方法的输入与前面的二维数组相同,
10 15 30 40
15 5 8 2
20 2 4 2
1 4 5 0
如果方向为 2(右),则输出数组将打印为:
10 25 55 95
15 20 28 30
20 22 26 28
1 5 10 10
现在,实现另一个执行相同功能的函数 runningSum2DArrayList(ArrayList< ArrayList< Integer >> list, int dir)。
我的主要方法如下:
import java.util.ArrayList;
import java.util.Scanner;
public class Lab3Task2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//input arrays with ";" between them
String[] temp = scanner.nextLine().split(";");
//input integers with white space between them
int[][] arr = new int[4][4];
for(int i = 0; i < 4; i++){
String[] tempA = temp[i].split("\\s");
for(int j = 0; j < 4; j++){
arr[i][j] = Integer.parseInt(tempA[j]);
}
}
//input integers with white space between them
ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
for(int i = 0; i < 4; i++){
String[] tempA = temp[i].split("\\s");
list.add(i, new ArrayList<Integer>());
for(int j = 0; j < 4; j++){
list.get(i).add(j, Integer.parseInt(tempA[j]));
}
}
runningSum2DArray(arr, 1);
runningSum2DArray(arr, 2);
runningSum2DArrayList(list, 3);
runningSum2DArrayList(list, 4);
scanner.close();
}
}
解决方案
如果您可以通过使用 访问二维数组中行i
和列的元素,那么对于 an ,您可以获得与 相同的元素。j
arr[i][j]
ArrayList<ArrayList<Integer>> list
list.get(i).get(j)
我不确定您为什么无法打印此信息。
您也可以打印list
,只需使用System.out.println(list)
。它将以格式输出 -
[[comma separated value from first array list],[...],[...],[csv from last arraylist]]
如果您不想以这种格式打印,请根据需要循环并打印单个元素。
推荐阅读
- c++ - Qt Index 属性返回负数
- jquery - addClass 和 removeClass 方法不起作用
- syncfusion - 安装 Syncfusion 仪表板服务器后,我运行它并收到此错误,并且无法访问本地网站
- c# - 如何通过 Selenium 和 C# 从子节点获取属性
- uwp - 使用打包项目将 exe 注册到自定义协议处理程序
- sql-server - 为什么 GETDATE() 不能用作过程参数的默认值或 EXECUTE 语句中的值?
- python - 删除与小于指定大小的组对应的行
- ios - 在集合视图中执行 numberof 部分时发生崩溃
- python - 将参数传递给在 docker 容器中运行的 python 脚本
- google-play - 我们在Play商店发布了应用程序,但我需要测试,如何降级应用程序?