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

Я хочу сделать это динамически в 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", 
  }
};

Ответы на вопрос(6)

Если вы сделаете эту строку [x] [y], то существует массив длины x, где каждый элемент в свою очередь содержит массив длины y. В Java нет необходимости, чтобы второе измерение имело одинаковую длину. Таким образом, для х = я вы можете иметь у = м и х = у вы можете иметь у = п

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

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

так далее.

Решение Вопроса
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
     }
 }

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

Если вы знаете, как сделать это с одномерными массивами, то вы знаете, как это сделать с 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";

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

это вывод этой программы

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();
}
 AxelH12 дек. 2016 г., 07:55
Добро пожаловать, вы должны объяснить, что интересно в этом ответе. Но, конечно, вы будете вставлять толькоelem в последнюю ячейку из-заint c = row -1 вместо тогоint c = 0 (то же самое дляd).
 AxelH12 дек. 2016 г., 08:05
А гдеsize из цикла "квадратный массив"

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

String[][] shades = new String[4][3];
for(int i = 0; i < 4; i++)
{
  for(int y = 0; y < 3; y++)
  {
    shades[i][y] = value;
  }
}
 Dev4World01 авг. 2018 г., 10:10
Пожалуйста, обновите код, удалив внутри равный цик

если вы заранее не знаете, сколько элементов вам придется обрабатывать, лучше использовать вместо этого коллекции https: //en.wikipedia.org/wiki/Java_collections_framewor). Можно было бы также создать новый больший 2-мерный массив, скопировать старые данные и вставить туда новые элементы, но среда сбора данных обрабатывает это автоматически.

В этом случае вы можете использовать карту строк в списках строк:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MyClass {
    public static void main(String args[]) {
        Map<String, List<String>> shades = new HashMap<>();

        ArrayList<String> shadesOfGrey = new ArrayList<>();
        shadesOfGrey.add("lightgrey");
        shadesOfGrey.add("dimgray");
        shadesOfGrey.add("sgi gray 92");

        ArrayList<String> shadesOfBlue = new ArrayList<>();
        shadesOfBlue.add("dodgerblue 2");
        shadesOfBlue.add("steelblue 2");
        shadesOfBlue.add("powderblue");

        ArrayList<String> shadesOfYellow = new ArrayList<>();
        shadesOfYellow.add("yellow 1");
        shadesOfYellow.add("gold 1");
        shadesOfYellow.add("darkgoldenrod 1");

        ArrayList<String> shadesOfRed = new ArrayList<>();
        shadesOfRed.add("indianred 1");
        shadesOfRed.add("firebrick 1");
        shadesOfRed.add("maroon 1");

        shades.put("greys", shadesOfGrey);
        shades.put("blues", shadesOfBlue);
        shades.put("yellows", shadesOfYellow);
        shades.put("reds", shadesOfRed);

        System.out.println(shades.get("greys").get(0)); // prints "lightgrey"
    }
}

Ваш ответ на вопрос