首页 > 解决方案 > 如何在 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();
    }
}

标签: javaarraysarraylistmultidimensional-array

解决方案


如果您可以通过使用 访问二维数组中行i和列的元素,那么对于 an ,您可以获得与 相同的元素。jarr[i][j]ArrayList<ArrayList<Integer>> listlist.get(i).get(j)

我不确定您为什么无法打印此信息。

您也可以打印list,只需使用System.out.println(list)。它将以格式输出 -

[[comma separated value from first array list],[...],[...],[csv from last arraylist]]

如果您不想以这种格式打印,请根据需要循环并打印单个元素。


推荐阅读