@vladocc

Как реализовать двумерный динамический массив в Java?

0 0 9 0 0
0 8 4 7 0
1 2 3 5 10
0 0 6 0 0

Вот двумерный массив из 10 чисел. При создании первого числа сразу создается следующее. У одного числа может быть несколько следующих за ним, как в примере с числом 3, от которого сразу пошли три ветви чисел 4, 5 и 6.
Сложность заключается в том, что индексы массива принадлежат натуральным числам, а число 9 в данной реализации будет иметь индекс -1;3 , т.к. счет матрицы идет от числа под номером 1.
Как можно реализовать матрицу такого типа в Java?

P.S. нули обозначают элементы равные null.
  • Вопрос задан
  • 2697 просмотров
Пригласить эксперта
Ответы на вопрос 2
@vivcogit
JS разработчик
Мне кажется, что тут не массив, а бинарное дерево нужно.
Ответ написан
Используйте Map
в связке с Pair :

import javafx.util.Pair;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class Main {

    public static void main(String[] args) throws IOException {

        Pair<Integer, Integer> position = new Pair<Integer, Integer>(-1, 3);
        Map<Pair<Integer, Integer>, Integer> myMatrix = buildMatrix();
        myMatrix.put(position, 9);
        outputValue(myMatrix, position);


    }

    private static Map<Pair<Integer, Integer>, Integer> buildMatrix() {

        return new HashMap<>();

    }

    private static void outputValue(Map<Pair<Integer, Integer>, Integer> map, Pair<Integer, Integer> key) {


        System.out.println(map.get(key));

    }


}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы