2015-11-29 4 views
0

Я смущен тем, как сделать Java-метод для добавления двух разных 2D-массивов без использования/импорта класса массивов. Это то, что я до сих пор:Добавление двух 2D-массивов без использования классов массивов Java

private Cell[][] appendArrays(Cell[][] first, Cell[][] second) { 
    Cell[][] third = new Cell[first.length][first[0].length + second[0].length]; 

    for (int i = 0; i < first.length; i++) { 
     for (int j = 0; j < first[i].length; j++) { 
      third[i][j] = first[i][j]; 
     } 
    } 
    for (int i = 0; i < second.length; i++) { 
     for (int j = 0; j < second[i].length; j++) { 
      // don't know what to do here 
     } 
    } 
    return third; 
} 

Ячейка является только объектом, но я пытаюсь понять логику прилагаемых массивов, так что любая помощь будет оценена по достоинству!

Кроме того, я знаю, что здесь есть аналогичный вопрос (How do you append two 2D array in java properly?), но ответ дается при добавлении массивов сверху вниз (при условии, что оба массива параметров имеют одинаковое количество столбцов), в то время как я ищу добавление массивы из стороны в сторону (при условии, что оба массива параметров имеют одинаковое количество строк).

+0

'' 'третий [я] [первый [0] .length + у] = второй [I] [J];' '' – saka1029

+0

что-то вроде 'третьего [first.length + I] [первая [ 0] .length + j] = second [i] [j] '? Вы также предполагаете, что 'first [X] .length' одинаково для всех' X' (и то же самое для 'second [X]'). – Kenney

ответ

0

Вы почти у цели. Я думаю, что это то, что вы ищете.

private Cell[][] appendArrays(Cell[][] first, Cell[][] second) { 
    Cell[][] third = new Cell[first.length][first[0].length + second[0].length]; 

    for (int i = 0; i < first.length; i++) { 
     for (int j = 0; j < first[i].length; j++) { 
      third[i][j] = first[i][j]; 
     } 
     for (int j = first[i].length; j < first[i].length + second[i].length; j++) { 
      third[i][j] = second[i][j-first[i].length]; 
     } 
    } 
    return third; 
} 
+0

Спасибо @ Rania за исправление. –

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