Mehrdimensionales array füllen

Einklang.

Bekanntes Mitglied
ich möchte ein mehrdimensionales array füllen und komm hier nicht weiter:

Java:
int a = 0;
        int b = 0;
        int c = 0;
        
        String [][][] daten = new String[a][b][c]; 
        
        
        while (resulttable.next())
         {
        	 System.out.println("Tabelle in Datenbank gefunden: " + resulttable.getString(1));
        	 daten[a]=resulttable.getString(1);

Fehlermeldung:
Multiple markers at this line
- Type mismatch: cannot convert from String to String[][]
- Line breakpoint:ButtonDBTablezweite [line: 182] -
testconnectionDB(DefaultTableModel)

Dann hab ich noch eine Frage: muss ich noch ein "a=a+1" darunter setzen, damit nicht das gleiche Feld im nächsten Durchgang gefüllt wird?
(in einem Buch wird nur immer eine for-schleife benutzt und die ersten Dimension von mehrdimensionalen Feldern werden von Hand gefüllt.....)
 
Zuletzt bearbeitet:
M

Marcinek

Gast
Du hast ein Array Array Array String

Du möchtest aber Array = String machen und das geht nicht.

Mache: daten[a][c]=resulttable.getString(1);

Dann hab ich noch eine Frage: muss ich noch ein "a=a+1" darunter setzen, damit nicht das gleiche Feld im nächsten Durchgang gefüllt wird?

ja klar ;D
 

Einklang.

Bekanntes Mitglied
Ich hab das probiert, bekomm aber bei der Ausgabe wiederum eine Fehlermeldung:

Java:
System.out.println("Arraydaten a " + daten[a]);

Fehlermeldung:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
 

mla.rue

Bekanntes Mitglied
Hm und? Laut deinem Code erzeugst du ein Array, wo jede Dimension die Grösse 0 hat und jetzt zuletzt greifst du auf Index 0 zu, den es nicht gibt.
 

Einklang.

Bekanntes Mitglied
Ne eigentlich sollte da ja was drinstehen:

Java:
int a = 0;
        int b = 0;
        int c = 0;
        
        String [][][] daten = new String[a][b][c]; 
        
        while (resulttable.next())
         {
        	 System.out.println("Tabelle in Datenbank gefunden: " + resulttable.getString(1));
        	 daten[a][b][c]=resulttable.getString(1);
        	 System.out.println("Arraydaten a " + daten[a]);
        	 a=a+1;

Bzw ist ja das mein Problem, dass ich a befüllen möchte und dann b usw - aber anscheinend wird a so nicht befüllt!
In meinem Buch wird das leider nicht so ausführlich beschrieben..... drum frag ich hier....!
 

mla.rue

Bekanntes Mitglied
Java:
int a = 0;
int b = 0;
int c = 0;
        
//was fehlt hier?

String [][][] daten = new String[a][b][c];

Wie gesagt.. du intiliasierist jeweils a,b und c mit 0.
Dann erstellst du ein 3d array der Größen 0 0 0 (man kann auch sagen: du erstellst etwas, das nichts ist)
Zum Schluß versuchst du auf die Position 1 (Index 0... weil a ja 0 ist) zuzugreifen und dir anzuzeigen, was da ist, da Position 1 aber nicht existiert, kommt die Fehlermeldung.

Ich kann mir auch schwer vorstellen, dass dir irgendein Buch vorschlägt, eine Datenbanktabelle in einem 3d Array abzubilden.

Wie wärs du fängst von Vorn und sagst was genau du überhaupt anstellen möchtest? Ich kann deinem Ansatz was zu machen nichts entnehmen, wo ich ansetzen könnte sorry :/. Evtl schaut aber auch mal Slater vorbei :).
 

Einklang.

Bekanntes Mitglied
Jetzt mal ehrlich - was soll so ein Beitrag?

Es fehlt der halbe Code und dann wird nur über die erstne zwei Zeilen gesagt, dass es 0 ist - das ist doch klar! Aber dass der Code in der while SChleife auch noch da ist und da das array nicht befüllt wird - das ist doch das Problem!

Was soll also dieser Beitrag?
 

Einklang.

Bekanntes Mitglied
Welche Lösung? Es wurde höchstens gezeigt was das Problem ist.... aber ich frag ja nach ner Lösung...! Dass da 0 drin steht hab ich ja selber schon gesagt...! :-D

Die Felder werden nicht befüllt - das ist das PRoblem!!

Hier wird nix befüllt bzw wenn befüllt keine Werte ausgegeben......:

Java:
while (resulttable.next())
         {
             System.out.println("Tabelle in Datenbank gefunden: " + resulttable.getString(1));
             daten[a][b][c]=resulttable.getString(1);
             System.out.println("Arraydaten a " + daten[a]);
             a=a+1;
 
Zuletzt bearbeitet:

mla.rue

Bekanntes Mitglied
a) wie Marcinek sagt wurde die Lösung genannt
b) somit kommentiere ich deine Fehlermeldung "indexOutOfBounds" die nur sagt, dass du auf einen Index zugreifst, den es nicht gibt, warum auch immer (der Einfachheithalber benutzte ich zur Erklärung den Coden, der mir vorliegt)

Ich würde mich eher fragen, woher diese Aggressivität kommt. Wie auch immer, hast du spezifische Fragen, zb. zu der indexOutOfBounds Fehlermeldung, oder soll ich weiter raten?

@TO: poste mal bitte wie dein resulttable zustandekommt
 
Zuletzt bearbeitet:

njans

Top Contributor
Sicher, dass es nicht daran hapert, dass du
Java:
 System.out.println("Arraydaten a " + daten[a]);
Aufrufst und dann eben nicht ausgegeben bekommst, was da drin steht sondern nur classname@hashcode ?
 

Einklang.

Bekanntes Mitglied
ne leider nicht - sonst wärs ne Typeumwandlung oder?

Ne ich bekomm ne rote Fehlermeldung:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
at ButtonDBTablezweite.testconnectionDB(ButtonDBTablezweite.java:180)
at ButtonDBTable.testDBActionPerformed(ButtonDBTable.java:551)
at ButtonDBTable.access$8(ButtonDBTable.java:547)
at ButtonDBTable$10.actionPerformed(ButtonDBTable.java:258)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown S

usw.....!
 
Zuletzt bearbeitet:

Einklang.

Bekanntes Mitglied
Ja das ist wieder mein altes Problem hier - man bekommt irgendwas vor die Füße geworfen und es bleibt einem selbst überlassen was man damit anfängt - wenn man nix damit anfangen kann weil man keine Erfahrungen damit hat bekommt man nicht etwa genauere Angaben, sondern... naja, Diskussionen - weil einfach die Vorstellung fehlt, dass andere Leute nicht den gleichen Kenntnissstand haben...! ;-)

Wie ich schonmal gesagt hab: Es herrscht anscheinend die völlige Unfähigkeit sich in den Kenntnisstand des Anderen hineinzuversetzen....... so kommt halt keine Hilfe zustande! Jemand ohne Vorkenntnisse kann mit dem halt nix anfangen, es bedarf der Erklärung!
Ein Satz hätte hier zb wieder genügt: in einem mehrdimensionalen Array können nur im letzten Feld Daten als String abgelegt werden und die anderen dienen zur Referenzierung/Orientierung, wo dieses Feld liegt....! Damit wärs erklärt gewesen warum es nicht funktioniert (kognitiv hätte sich das aus einer Schlussfolgerung dieses Satzes ergeben - es steht nicht direkt drin)!

Das steht übrigens auch nicht in meinem Buch.... für Java Anfänger.... drum frag ich hier im Forum.... hab ich das schon gesagt?! ;-)
 
N

nillehammer

Gast
Es wurde eigentlich schon alles gesagt, aber vielleicht nicht verständlich/ausführlich genug. Deswegen noch ein paar Erklärungen, von denen ich glaube, dass Sie hilfreich sein könnten:
Java:
// liefert KEINEN String, sondern einen Array (aus Arrays)
daten[a]

// liefert KEINEN String, sondern einen Array (aus Strings)
daten[a][b]

// liefert einen String
daten[a][b][c]
Ursache für die
Code:
ArrayIndexOutOfBoundsException
: Mit den Zeile hier:
Java:
int a = 0;
        int b = 0;
        int c = 0;
        
        String [][][] daten = new String[a][b][c];
erzeugst Du einen 3d-Array, der in allen Dimensionen die Länge 0 hat. In einen Array der Länge 0 kann man nichts speichern und auch nichts rausholen. Da die Länge eines einmal initialisierten Arrays nachträglich nicht verändert werden kann, gilt das für immer. D.h. egal, was für einen Index Du angibst, es gibt ihn nicht, die
Code:
ArrayIndexOutOfBoundsException
fliegt immer.

Lösungsvorschläge:
Wenn es unbedingt der 3D-Array sein soll: Du musst vor Initialisierung des Arrays für alle drei Dimensionen die benötigten Längen ermitteln (die natürlich alle > 0 sein müssen). Dann kannst Du mit einer dreifach verschachtelten Schleife den Array befüllen. Wenn Du die benötigten Längen vorher nicht ermitteln kannst, ist Dein Problem mit Arrays nicht lösbar (zumindest nicht sinnvoll). Abgesehen davon ist das Handling eines 3D-Arrays sowei eine dreifach verschachtelte Schleife so unübersichtlich, dass fortgeschrittene Programmierer sowas nicht machen würden.

Deswegen der dringende Rat zu zwei Alternativen:
- Java ist eine strukturierte Sprache. Es besteht nicht die Notwendigkeit, Datenstrukturen in Mehrdimensionalen Arrays abzubilden. Schreib Dir eine Klasse ResultZeile mit entsprechenden Instanzvariablen und speichere allenfalls diese in einem Array ab. (Bleibt aber immer noch das Problem der vorher zu bestimmenden benötigten Länge), darum:

-Nutze List, da kann man dynamisch Werte hinzuadden.
 

Einklang.

Bekanntes Mitglied
Super besten Dank.

Genau das ist das was ich wissen wollte - ich hab auch noch Erklärungen als private Nachricht erhalten und werde hier dann mal noch mit den Arrays austesten und wohl auch berichten... ! :)

besten Dank
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Mehrdimensionales dynamisches Array Allgemeine Java-Themen 3
S Mehrdimensionales ArrayList ins HashSet Allgemeine Java-Themen 10
Fynn29 Liste sortieren ohne Array und ohne vorgegebene Sortierung Allgemeine Java-Themen 24
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
M Queue mit einem Array implemetieren Allgemeine Java-Themen 16
M Array Rang eines Elements Allgemeine Java-Themen 4
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
noah1407 Array Allgemeine Java-Themen 3
D Methoden Teil-Array mit Maximalwert bestimmen Allgemeine Java-Themen 23
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
N zweidimensionalen Array in dreidimensionalen Array speichern Allgemeine Java-Themen 4
N Schnellste Methode, ein Array durchzugehen? Allgemeine Java-Themen 9
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
L Array und Index Allgemeine Java-Themen 26
L die 3 größten Zahlen im Array Allgemeine Java-Themen 1
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
Willi.We Array sortieren Allgemeine Java-Themen 5
gotzi242 Array Summe bestimmen tipps? Allgemeine Java-Themen 14
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
V4ll3.Wff Array in Java Allgemeine Java-Themen 4
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
H Array Sportschütze Allgemeine Java-Themen 6
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
M Array verändern Allgemeine Java-Themen 1
A JavaFX 2 dimensionales array Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
parrot Array Aufgabe Allgemeine Java-Themen 3
N String Array Eingabe Allgemeine Java-Themen 6
R Warum wird mir in der Konsole das "Standard Array" ausgegeben? Allgemeine Java-Themen 2
N Variablen Array Länge ändern. Allgemeine Java-Themen 8
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
A Array Problem Allgemeine Java-Themen 8
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
F Datei in String-Array einlesen Allgemeine Java-Themen 8
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
F 3 Dimensionales Array mit Allgemeine Java-Themen 9
M Steueralgorithmus verwandelt Array in Anfangszustand Allgemeine Java-Themen 9
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
T Objekt in Array packen Allgemeine Java-Themen 6
M Zahlen in Array anordnen Allgemeine Java-Themen 8
M Eclipse Unvollständigen Array ansteuern Allgemeine Java-Themen 2
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
Xge For/Array Error: IndexOutOfBounds Allgemeine Java-Themen 4
M Wie kann ich ein int[] Array in einer Methode benutzen? Allgemeine Java-Themen 6
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
J Variablen Array ertellen bei model.put Allgemeine Java-Themen 13
S Eindimensionales Array in zweidimensionales Array speichern Allgemeine Java-Themen 5
R convert 2d array list to 2d array Allgemeine Java-Themen 1
J json Array würfel Spalten durcheinander Allgemeine Java-Themen 9
MiMa Array umbau oder Alternative? Allgemeine Java-Themen 5
L Datentypen 3D Array Allgemeine Java-Themen 3
M 2D Array mit unterschiedlichen Längen erstellen und befüllen Allgemeine Java-Themen 11
Mario1409 Methoden JSON Array von URL Allgemeine Java-Themen 8
E Swing Array mit Bildern in GUI darstellen Allgemeine Java-Themen 2
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
M Zweidimensionales Array mit Binärzahlen füllen Allgemeine Java-Themen 8
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
G Array ohne Aufzählungszeichen ausgeben Allgemeine Java-Themen 6
J Wie kann ich ein Java Array als Säulendiagramm ausgeben? Allgemeine Java-Themen 2
Z 2D Array Pixels reparieren Allgemeine Java-Themen 2
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
B Polibios Array erweitern Allgemeine Java-Themen 1
R Index in einem Array löschen Allgemeine Java-Themen 10
R Index in einem Array löschen Allgemeine Java-Themen 2
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
J Array-List Bubble-Sort Allgemeine Java-Themen 12
4 Variablen Int-Array Int Zuweisen Allgemeine Java-Themen 7
J Array Allgemeine Java-Themen 8
Z Array mit unterschiedlichen Werten Allgemeine Java-Themen 1
L sortiertes Array im main aufrufen klappt nicht. Allgemeine Java-Themen 3
O Mein JButton Array funktioniert nicht Allgemeine Java-Themen 3
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
A Vector Strings in Array splitten Allgemeine Java-Themen 6
I Muster in Array suchen Allgemeine Java-Themen 10
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
S Variablen String[] Array per schleife in int[] einlesen Allgemeine Java-Themen 8
B Zahlen manuell eingeben und in Array Speichern Allgemeine Java-Themen 2
R Wärmeleitung, 3d-Array Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben