Переменная
String[][][][] names
- это переменная, представляющая четырехмерный массив строк, то есть массив массивов массивов строк. Буквально
{"zach","zach","zach","zach"};
Является одномерным массивом строк с четырьмя элементами в нем. Обратите внимание на различие - массив из четырех элементов представляет собой String[]
, а не String[][][][]
. В одномерном массиве может быть сколько угодно элементов. Добавление большего количества измерений в массив полезно, если вы хотите представить что-то вроде двумерной или трехмерной сетки, но неверно сказать, что массив содержит больше элементов.
Чтобы исправить это, вы хотите написать
String[] names = {"zach","zach","zach","zach"};
Это действительно работает правильно.
Если вам нужен 2D-массив строк, вы можете сделать что-то вроде этого:
String[][] nameGrid = {
{"Alice", "Bob", "Charlie"},
{"David", "Eliza", "Fred"},
{"Gary", "Helen", "Isaac"},
};
Здесь данные являются двумерными - вы выбираете, какую строку вы хотите использовать в качестве первого индекса массива, а какой столбец - в качестве второго индекса массива. Обратите внимание, что число элементов массива в каждой строке и столбце не зависит от количества измерений в массиве, поскольку это отдельные понятия.
Надеюсь, это поможет!