Как напечатать двухмерный массив и двухмерную промежуточную сумму arrayList в Java - PullRequest
0 голосов
/ 16 февраля 2019

Реализовать метод / функцию, которая выдает промежуточную сумму runningSum2DArray (массив int [] [], int dir) по строкам (слева направо или справа налево) или столбцам (сверху вниз или снизу вверх)

Входные данные для метода: двумерный массив int 4x4 и целое число (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 > список, 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();
    }
}

1 Ответ

0 голосов
/ 16 февраля 2019

Если вы можете получить доступ к элементу в строке i и столбце 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]]

Если вы не хотите печатать в этом формате, то зацикливайте и печатайте отдельные элементы по вашему желанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...