Java -- initialisieren von String[][]-Arrays

...komplette Frage anzeigen

3 Antworten

Das liegt daran, dass du das zweidimensionale Array "returnString" noch nicht initialisiert hast. Du versuchst also auf eine Array-Instanz zuzugreifen (mittels Indizes), auf der Variable ist aber noch keine Objektreferenz hinterlegt.

Daher solltest du erst deine Variable mit einem ausreichend großen Array initialisieren und dann kannst du in deiner ForEach-Schleife darauf zugreifen.

Ansonsten verstehe ich den Sinn des StringBuilders nicht so ganz. Du erzeugst einen, steckst einen String hinein und aus dem gesamten StringBuilder wird eine neue StringBuilder-Instanz erzeugt. Auch das du Methode "insert()" anstatt "append()" verwendest, obwohl du ganz klar von 0 beginnst, ist fragwürdig.

Tschoo 10.03.2015, 12:53

In einem anderen Programmteil habe ich rumexperimentiert, und insert wahr der bessere Weg, aber mit den neuen Instancen hast du Recht -- dass muss ich wieder ändern...

0

Du hast ja noch gar kein Array erzeugt, sondern lediglich eine Variable, die auf ein Array verweisen kann. Daher kannst du den (noch nicht existierenden) Array-Elementen auch nichts zuweisen.

Versuche es einmal so:

private String[][] returnString = new String[10][10];

… für ein 10-mal-10-Array.

Wenn du die Größe nicht im Vorhinein kennst, kannst du anstatt eines Arrays andere Datentypen benutzen (z.B. ArrayList).

Hallo!

Vielen Dank für die Antworten. Hat mich zum überlegen gebracht.

Habe das ganze jetzt mit HashMap gelöst -- dies scheint insgesamt auch die Speicherfreundlichste Lösung zu sein (Programm ist für Android).

Und ausserdem sind Hashmaps doch leicht zu handeln -- der Name schreckt halt erstmal ab.

Gruß

Was möchtest Du wissen?