2016-09-09 6 views
0

У меня есть метод, который заполняет два из трех измерений массива.java: использовать 3d массив из метода в основном методе

public static String[][] Method(){ 
    double[][][] chromosom = new double [50][8][4]; 
    for(int j = 0; j < 8; j++){ 

     // generate random value ... 

     chromosom[0][j][0] = value*2; 
     chromosom[0][j][1] = value*3; 
     chromosom[0][j][2] = value*5; 
     chromosom[0][j][3] = value*9; 
    } 
} 

Теперь я хочу использовать этот массив в моей основной для создания 50 таких массивов и сохранить их все в одном массиве.

static double[][][] chromosom = new double [50][8][4]; 

public static void main(String[] args){ 
    for(int i = 0; i < 50; i++){ 
     Method(); 
     for(int j = 0; j < 8; j++){ 
      chromosom[i][j][0]; 
      chromosom[i][j][1]; 
      chromosom[i][j][2]; 
      chromosom[i][j][3]; 
     } 
    } 
} 

Моя проблема заключается в том, что я не могу достичь массива хромосом со своими значениями из моего основного метода.

+0

Кажется, вы пытаетесь очень странно использовать основной метод. Вероятно, вам следует избегать этого. – Thibstars

+0

То, что вы хотите, - это «вернуть» значение. Я бы посоветовал сделать несколько уроков, прежде чем переходить на ваш собственный проект. thenewboston имеет действительно хорошую серию видеоуроков. – flakes

+2

'static double [] [] [] = новый двойной [50] [8] [4];' .. где здесь переменная? – CKing

ответ

1

Ваш код не компилируется. Ваш метод должен вернуть строку [] []. Зачем создавать 3-мерный двойной массив, если этот метод должен создавать только 2-мерный массив String? Как об этом:

public static double[][] generateXY(){ 
    double[][] result = new double[8][4]; 
    for(int j = 0; j < 8; j++){ 

     // generate random value ... 

     result[j][0] = value*2; 
     result[j][1] = value*3; 
     result[j][2] = value*5; 
     result[j][3] = value*9; 
    } 
    return result; 
} 

, а затем в ваш главный:

public static void main(String[] args){ 
    double[][][] xyz = new double[50][8][4]; 
    for(int i = 0; i < 50; i++){ 
     xyz[i] = generateXY(); 
    } 
} 

Методы и переменные должны быть переименованы, я не знаю, что exaclty вы делаете с ним.

+0

спасибо, что это работает! – boersencrack

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