webentwicklung-frage-antwort-db.com.de

Wie kann ich programmgesteuert Werte in einem zweidimensionalen Array einfügen?

Ich möchte dies dynamisch in Java tun. Ich weiß, wie man Werte in ein eindimensionales Array einfügt. Ich bin etwas verwirrt in zweidimensionaler Anordnung. 

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", 
  }
};
8
vinothp
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
     }
 }
7
Azhar Shaikh

Versuchen Sie unten zu programmieren,

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

Sie können einem Array keine Werte hinzufügen, da die Arraylänge unveränderlich ist. Sie können Werte an bestimmten Feldpositionen festlegen.

Wenn Sie wissen, wie Sie mit eindimensionalen Arrays arbeiten, wissen Sie, wie Sie mit n-dimensionalen Arrays vorgehen: In Java gibt es keine n-dimensionalen Arrays, nur Arrays von Arrays (von Arrays ...).

Sie können jedoch den Indexoperator für den Zugriff auf Arrayelemente verketten.

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";

Beachten Sie, dass die Abmessungen der untergeordneten Arrays nicht übereinstimmen müssen.

Falls Sie nicht im Voraus wissen, wie viele Elemente Sie behandeln müssen, ist es möglicherweise eine bessere Lösung, stattdessen Sammlungen zu verwenden ( https://en.wikipedia.org/wiki/Java_collections_framework ). Es ist auch möglich, ein neues, größeres zweidimensionales Array zu erstellen, die alten Daten zu kopieren und die neuen Elemente dort einzufügen, aber das Collection-Framework erledigt dies automatisch für Sie.

In diesem Fall können Sie eine Karte von Zeichenfolgen zu Listen von Zeichenfolgen verwenden:

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"
    }
}
0
Hemaolle

Betrachten Sie es als Array von Arrays.

Wenn Sie dies str [x] [y] ausführen, gibt es ein Array der Länge x, in dem jedes Element seinerseits ein Array der Länge y enthält. In Java ist es nicht notwendig, dass die zweite Dimension dieselbe Länge hat . Für x = i können Sie y = m und x = j haben, können Sie y = n haben

Dafür sieht Ihre Erklärung aus

String [] [] test = neuer String [4] []; Test [0] = neuer String [3]; Test [1] = neuer String [2];

usw..

0
ejb_guy