Как программно вставить значения в двумерный массив?

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

static final String shades[][] = {


 // Shades of grey
  {
    "lightgrey", 
    "dimgray", 
    "sgi gray 92", 
  },
 // Shades of blue
  {
    "dodgerblue 2", 
    "steelblue 2", 
    "powderblue", 
  },
// Shades of yellow
  {
    "yellow 1",
    "gold 1",
    "darkgoldenrod 1", 
  },
 // Shades of red
  {
    "indianred 1", 
    "firebrick 1", 
    "maroon", 
  }
};

5 ответов


String[][] shades = new String[intSize][intSize];
 // print array in rectangular form
 for (int r=0; r<shades.length; r++) {
     for (int c=0; c<shades[r].length; c++) {
         shades[r][c]="hello";//your value
     }
 }

попробуйте код ниже

String[][] shades = new String[4][3];
for(int i = 0; i < 4; i++)
{
  for(int y = 0; y < 3; y++)
  {
    shades[i][y] = value;
  }
}

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

Если вы знаете, как это сделать с одномерными массивами, то вы знаете, как это сделать с N-мерными массивами: в Java нет n-мерных массивов, только массивы массивов (массивов...).

но вы можете связать оператор индекса для доступа к элементу массива.

String[][] x = new String[2][];
x[0] = new String[1];
x[1] = new String[2];

x[0][0] = "a1";
    // No x[0][1] available
x[1][0] = "b1";
x[1][1] = "b2";

обратите внимание, что размеры дочерних массивов не должны спичка.


подумайте об этом как массив массива.

Если вы сделаете это str[x] [y], то существует массив длины x, где каждый элемент в свою очередь содержит массив длины y. В java нет необходимости, чтобы второе измерение имело одинаковую длину. Поэтому для x=i вы можете иметь y=m и x=j вы можете иметь y=n

для этого ваша декларация выглядит как

String [] [] test = новая строка[4][]; test[0] = новая строка[3]; test[1] = новая строка[2];

etc..


это выход из программы

Scanner s=new Scanner (System.in);
int row, elem, col;

Systm.out.println("Enter Element to insert");
elem = s.nextInt();
System.out.println("Enter row");
row=s.nextInt();
System.out.println("Enter row");
col=s.nextInt();
for (int c=row-1; c < row; c++)
{
    for (d = col-1 ; d < col ; d++)
         array[c][d] = elem;
}
for(c = 0; c < size; c++)
{ 
   for (d = 0 ; d < size ; d++)
         System.out.print( array[c] [d] +"   ");
   System.out.println();
}