Может кто-то пожалуйста, объясните, почему я получаю эту ошибкуПроблемы с 4D массива
Type mismatch: cannot convert from String to String[][][]
в этом коде?
String [][][][] names = {"zach","zach","zach","zach"};
Может кто-то пожалуйста, объясните, почему я получаю эту ошибкуПроблемы с 4D массива
Type mismatch: cannot convert from String to String[][][]
в этом коде?
String [][][][] names = {"zach","zach","zach","zach"};
переменной
String[][][][] names
является переменной, представляющей собой четырехмерный массив строк - то есть, массив массивов массивов массивов строк. Литерал
{"zach","zach","zach","zach"};
Является одномерной строковой матрицей с четырьмя элементами в ней. Обратите внимание на различие - массив из четырех элементов - это String[]
, а не String[][][][]
. Одномерный массив может иметь столько элементов, сколько вам нужно. Добавление большего размера в массив полезно, если вы хотите представить что-то вроде 2D или 3D-сетки, но это неверный способ сказать, что массив содержит больше элементов.
Чтобы исправить это, вы хотите написать
String[] names = {"zach","zach","zach","zach"};
Это действительно работает правильно.
Если вы хотите 2D массив строк, вы могли бы сделать что-то вроде этого:
String[][] nameGrid = {
{"Alice", "Bob", "Charlie"},
{"David", "Eliza", "Fred"},
{"Gary", "Helen", "Isaac"},
};
Здесь данные двумерно - можно выбрать, какие строки вы хотите в качестве первого индекса массива, и какой столбец вам нужен как второй индекс массива. Обратите внимание, как количество элементов массива в каждой строке и столбце не зависит от количества измерений в массиве, поскольку это отдельные понятия.
Надеюсь, это поможет!
Если вы хотите 1D массив;
String[] names = {"zach","zach","zach","zach"};
Если вы хотите 4D-массив;
// Only filling one dimension of the 4D array
String [][][][] names = {{{{"zach","zach","zach","zach"}}}};
Ссылка; http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx
Ваша инициализация 4D не компилируется. – Diego
Эта инициализация в моей системе очень проста. – templatetypedef
Вы, кажется, путаете размеры и размеры. Каждое дополнительное измерение добавляет «внутренний» массив, поэтому в основном массив массивов и т. Д. В то время как размер состоит в том, сколько элементов он может удерживать. –