2015-11-13 2 views
1

Я попытался найти решение для этого во многих источниках. Но тщетно. У меня есть 3 объекта 2D-массива:Как сделать 2D-массив 2D-массивов

double[][] W1 = new double[5][10]; 
double[][] W2 = new double[2][3]; 
double[][] W3 = new double[4][6]; 

и я хочу, чтобы еще один объект массива содержал эти 3 объекта массива. Как мне это сделать?

Я обнаружил, что можно сделать много 1D массивов в массив 2D массивов, используя следующую

double[][] W = new double[][]{W1, W2, W3}; //provided W1, W2, W3 are 1D arrays. 

Но как же мне делать то же самое для 2D массивов?

+0

'double [] [] [] W = {W1, W2, W3};' –

+0

Ваш массив 'W' не является массивом двумерных массивов, это 1D массив из 1D массивов, также известный как 2D массив. Точно так же это означает, что вы действительно не хотите 2D-массив 2D-массивов, вы действительно хотите, чтобы трехмерный массив инициализировался тремя 2D-массивами. В любом случае конечный результат - это всего лишь один массив. –

ответ

6

A 1D массив объявлен как double[], то есть [] из double.

1D массив из 1D массивов (2D-массив) объявлен как double[][], то есть [] из double[].

1D массив 2D-массивов (3D-массив) объявлен как double[][][], то есть [] из double[][].

1D массив трехмерных массивов (массив 4D) объявлен как double[][][][], то есть [] из double[][][].

Существует нет практического различия между трехмерным массивом, 1D-массивом двумерных массивов и 2D-массивом из 1D-массивов; или между массивом 4D, 1D-массивом трехмерных массивов и 2D-массивом 2D-массивов. Это чисто как вы решили подумать о них.

Я действительно не могу думать, почему вы хотите использовать массивы, глубоко вложенные в нее; Я бы предложил вам подумать о том, может ли существовать лучшая альтернатива.

+0

Теперь я получу его. Спасибо за объяснение :) –

2

Итак, вы хотите инициализировать трехмерный массив из 3-х 2D-массивов. Это должно сделать это

double[][][] W = {W1, W2, W3}; 

Запишите, как вам не нужно new.

+0

Я не хочу, чтобы W был 3D-массивом. он должен быть двумерным массивом. Я в основном программист на Python, и это возможно сделать в python. Я хотел знать, возможно ли в java то же самое. –

+1

Вам нужен 2D-массив, в котором каждый элемент представляет собой двумерный массив удвоений? Это будет 4D-массив, тогда –

Смежные вопросы