Как напечатать 2D-массив и текущую сумму 2D arrayList в Java

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

Входные данные для метода: двумерный массив целых чисел 4x4 и целое число (1, 2, 3 или 4 для слева, справа, вверх, вниз соответственно).

Выходные данные: измененный массив после создания текущих сумм в соответствии с направлением.

Например: если входные данные для метода такие же, как и для более раннего 2D-массива,

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

Теперь реализуйте другую функцию, выполняющую Sum2DArrayList(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();
    }
}
stackoverflow.com/questions/19648240/…
uneq95 16.02.2019 21:46

С какой проблемой вы столкнулись?

uneq95 16.02.2019 21:47
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
924
1

Ответы 1

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

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

Другие вопросы по теме