Как программно вставить значения в двумерный массив?
Я хочу сделать это динамически в 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();
}