2016-07-14 3 views
1

Я знаю, что массивы должны иметь постоянное количество элементов в Java, но помимо этого массивы отлично зарекомендовали себя в этом приложении, поэтому я не хочу для использования другой структуры данных.Добавление нового столбца в массив матрицы/2d

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

String[][] tempArray = new String[array.length][array.length+1]; 

Затем я положил все элементы регулярного массива array внутри одной дополнительной колонки длинной tempArray.

То, что я не могу сделать, это поместить новый столбец в индекс около index.

Как бы я это сделал? Благодаря!

ответ

1

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

int index = 7; 
    String[][] array = new String[5][10]; 

    String[][] tempArray = Arrays.copyOf(array, array.length + 1); // New array with row size of old array + 1 

    tempArray[array.length] = new String[array[index].length]; // Initializing the new row 

    for(i=tempArray.length; i>=index; i--) 
    { 
     tempArray[i] = tempArray[i-1]; 
    } 

    tempArray[index] = new String[array[index].length]; 

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

+0

Это то, что я ищу; переместите значения в более массивный массив. Мне нужен алгоритм для смещения всех чисел справа от массива, чтобы освободить место для некоторого пустого столбца посередине. – 26hmkk

+0

И вы хотите, чтобы новый столбец в позиции 'index' был пустым? Или вы хотите, чтобы последний столбец был пустым? –

+0

Да, я хочу, чтобы новый и пустой столбец находился в позиции 'index'. – 26hmkk

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