Хранить массив Char в матрице 2xn - PullRequest
0 голосов
/ 26 марта 2020

Я хочу понять, как char хранит в 2xn char matrix

Например,

 int numWords = in.nextInt();
 char[][] words = new char[numWords][];

В приведенном выше коде words - это char matrx, который может хранить numWords количество строк и n количество столбцов в каждой строке. Правильно?

for (int i = 0; i < numWords; i++) {
                words[i] = in.next().toCharArray();
                System.out.println("in.next().toCharArray():"+words[i][i]);

            }

Если я запустил приведенный выше код с numWords, он равен 1 и имеет значение a 1

Тогда как массив char вернется in.next().toCharArray() сохранит в words матрицу?

Как будет выглядеть матрица?

Обновление:

С numWords равно 1 Если char array имеет значение a, ,1 и печатать вот так

System.out.println ("Значения:" + words [i] [i] + "------" + words [i] [i + 1]);

Почему его показанная ниже ошибка? В первом ряду должно быть 3 столбца?

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException : 1

1 Ответ

1 голос
/ 26 марта 2020

Java не имеет понятия матрицы или многомерного массива. У вас есть массив массивов, и ничто не заставляет «внутренние» массивы иметь одинаковую форму (длину).

«Массив массивов» означает, что это массив, в котором сами элементы являются массивами.

Вы можете визуализировать массив массивов следующим образом:

0: **********
1: **
2: ******
3: ***************

Когда вы пишете

char[][] words = new char[numWords][];

, вы создаете массив, в котором элементы являются массивами char и изначально установлен на null. Когда вы пишете

words[i] = in.next().toCharArray();

, вы делаете элемент массива с индексом i указанием на новый массив символов.

...