これを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",
}
};
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;
}
}
配列の長さは不変であるため、配列に値を「追加」することはできません。特定の配列位置に値を設定できます。
1次元配列でそれを行う方法を知っている場合は、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";
子配列の次元は一致する必要がないことに注意してください。
処理する必要のある要素の数が事前にわからない場合は、代わりにコレクションを使用する方が良いソリューションかもしれません( https://en.wikipedia.org/wiki/Java_collections_framework )。新しい大きな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"
}
}
配列の配列と考えてください。
このstr [x] [y]を実行すると、各要素に順に長さyの配列が含まれる長さxの配列があります。 Java 2番目の次元が同じ長さである必要はありません。したがって、x = iの場合はy = mとx = jの場合はy = nを使用できます
このため、宣言は次のようになります
String [] [] test = new String [4] []; test [0] = new String [3]; test [1] = new String [2];
等..