Array wird überschrieben

Status
Nicht offen für weitere Antworten.
A

Assaultv2.0

Gast
hi wollte mal fragen ob mir jemand helfen kann bei folgendem code part...

Code:
	    for (String line; (line = f.readLine()) != null;) {

		i++;
		if (i == 1) {
		    Host = line;
		} else if (i == 2) {
		    Sid = line;
		}
		;

		if (i >= 3) {
		    i = 0;
		    DBA[anrX] = new DBS(Sid, Host);
		    anrX = anrX + 1;
		}
	    }

erstmal zur erklärung, er soll immer 2 zeilen einlesen host und sid und dann die 3 zeile überspringen, die eingelesenen zeilen sollen dann als object in dem array gespeichert werden.

das problem ist jetzt, ich lese das erste object ein und habe für dba[0] host1 und sid1 das klappt ja noch, dann liest er mir die nächsten 2 zeilen ein zb. host2 und sid2 speichert dann in dba[1], soweit auch noch ok aber er überschreibt dann auch dba[0] und die haben dann auch die werte host2 und sid2....

woran könnte das liegen? wahrscheinlich dürfte der codeschnipsel nicht viel bringen deshalb hier noch ein paar^^

hier lese ich die einzelnen Positionen wieder aus
Code:
	for (anrX = 0; anrX >= 0; anrX = anrX + anrX) {

	    hostname = DBA[anrX].hostname;
	    sid = DBA[anrX].sid;

das array erstelle ich mit
Code:
DBS[] DBA = new DBS[5];
&
Code:
public class DBS {

	static String hostname;
	static String sid; 
		
	public DBS(String Sidü, String Hostnameü){//Konstruktor
		hostname = Hostnameü;
		sid = Sidü;
	}
}
 

xysawq

Bekanntes Mitglied
kurz mal so als Frage nebenbei:

bei
Code:
for (anrX = 0; anrX >= 0; anrX = anrX + anrX) {

       hostname = DBA[anrX].hostname;
       sid = DBA[anrX].sid;

quält mich dieses "anrX = anrX + anrX", es wurde doch mit 0 initialisiert, d.h. es bleibt immer 0 und da die Bedingung "anrX >= 0" ist, also die Schleife solange weiter läuft wie anrX größer-gleich 0 ist, müsste die ewig laufen.


dann noch:
Code:
for (String line; (line = f.readLine()) != null;) {

      i++;
      if (i == 1) {
          Host = line;
      } else if (i == 2) {
          Sid = line;
      }
      ; <--- was soll das da???

      if (i >= 3) {
          i = 0;
          DBA[anrX] = new DBS(Sid, Host);
          anrX = anrX + 1;
      }
       }

es kann gut sein, dass dir das Semikolon da etwas verhaut.

Aber mal so als Tipp am Rande, du solltest, wenn Fehler auftreten, ein paar System.out.println(...) machen, immer wenn du dein Array beschrieben oder ausgelesen hast, oder noch besser während dessen, damit du genau siehst in welchem Codeabschnitt der Fehler passiert und wir nicht versuchen müssen jeden Codeschnipsel zu verstehen.

Aber versuche erstmal mit meinem bisherigen "Lösungsansatz" was zu machen, wenns nicht geht bitte wie beschrieben vorgehen und die exakte Fehlerposition finden.
 
G

Guest

Gast
Hallo!

Zunächst würde ich ArrayLists verwenden. Dann brauchst du nicht solche Zählvariablen
wie anrX mit dir rumschleppen. Mit add(...) kannst du dann neue Elemente zur Laufzeit hinzufügen.
Das vereinfacht hier das Erstellen von DBS-Objekten.

Weiterhin springt f in die nächste Zeile, wenn readLine() aufgerufen wurde. Dadurch ist es nicht
erforderlich, sich mittels einem Zähler zu merken, wo du gerade bist (hier war es die Variable i).
Vorausgesetzt, du kennst das Format der Datei (ich nehme mal an, du liest aus einer Datei).

Hier mein (ungetesteter) Code.

Code:
ArrayList<DBS> DBA = new ArrayList<DBS>(); // ArrayLists sind besser als normale Arrays

String s = null;
while( ( s = f.readLine() ) != null ) {  // Sind wir am Ende der Datei?
      DBA.add( new DBS( s,                  // sind wir hier, so wurde in s der Host eingelesen
                                   f.readLine() )); // sid einlesen
      f.readLine();  // Zeile überspringen
}

So, ich sehe gerade:

Deine for-Schleife in deinem zweiten Schnipsel macht nicht viel Sinn:

Zunächst setzt du zu Beginn der Schleife anrX auf 0.
Bei jedem Schleifendurchlauf führst du dann anrX = anrX + anrX aus.
Hier wäre das jetzt anrX = 0 + 0 = 0. Also wäre anrX wieder 0.
Wenn ich jetzt nichts übersehen habe, ist das eine Unendlichschleife.

So würde ich die Daten wieder auslesen (ich gebe sie mal in der Konsole aus):

Code:
// size liefert dir die Anzahl an Einträgen im ArrayList
// Die Zählung der Elemente im ArrayList beginnt bei 0 !
for( int i = 0; i < DBA.size(); i++ ) { // besser wären generische for-Schleifen, aber es soll verständlich bleiben
    System.out.println( DBA.get(i).hostname ); // DBA.get(i) liefert mir den i-ten Eintrag in der ArrayList
    System.out.println( DBA.get(i).sid ); // analog
}

Letzte Frage: Warum machst du hostname und sid static? Dadurch gibt es nur ein hostname und sid, egal wieviele
DBS-Objekte du hast. Sollte es nicht lieber public heißen? Vielleicht übersehe ich da was :)

Mal hoffen, ich habe dein Problem richtig verstanden und konnte helfen
(ist mein erster Post hier im Forum :-D )
 
A

Assaultv2.0

Gast
das mit dem anrx ist mir auch aufgefallen hab einfach in anrX++ geändert

das simikolon hab ich jetzt weggemacht aber er überschreibt den array platz DBA[0] immer noch ... :(

hat das mit dem system.out.println iergendweleche vorteile gegen über dem eclipse debugger ich meine dort sehe ich doch auch wie sich die variablen ändern ?
 

BigBoomer

Neues Mitglied
Der überschriebt das, weil hostname und sid in deiner Klasse static sind.
Sie müssen public sein.

System.out.println() ist nur ne andere Lösung zu debuggen. Ob sie besser
ist, will ich hier nicht diskutieren.
 

assault

Aktives Mitglied
cool der tipp mit dem public hat geklapt thx war mir garnicht aufgefallen hätte ich mir aber auch denken können ^^
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A char array wird überschrieben Java Basics - Anfänger-Themen 6
P Array wird automatisch überschrieben Java Basics - Anfänger-Themen 3
T Array wird überschrieben Java Basics - Anfänger-Themen 4
D Array Objekt wird überschrieben Java Basics - Anfänger-Themen 3
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
H Array wird als Rückgabewert nicht akzeptiert? Java Basics - Anfänger-Themen 2
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
B Gefülltes Array wird mit nullwerten übergeben Java Basics - Anfänger-Themen 9
Bluebird209 Array wird nicht an Methode übergeben Java Basics - Anfänger-Themen 7
E Methoden 2D Array wird in der Methode nicht geändert/gespeichert Java Basics - Anfänger-Themen 5
E Wie wird in Java ein Char-Array terminiert ? Java Basics - Anfänger-Themen 15
L [Verständnisproblem] Array wird trotz void rückgabe verändert. Java Basics - Anfänger-Themen 5
D Array wird immer mir 100 für jeden Wert initialisiert? Java Basics - Anfänger-Themen 2
Silvascus Array, der mit dem Namen, der per Methode übergeben wird, erstellt wird Java Basics - Anfänger-Themen 5
C Array wird falsch befüllt? Java Basics - Anfänger-Themen 7
J Warum wird Array durch Methode ohne Rückgabewert verändert? Java Basics - Anfänger-Themen 5
L Schleifen und Array, nur letzte Eingabe wird ausgegeben Java Basics - Anfänger-Themen 3
S Array wird nicht übernommen NullPointerException Java Basics - Anfänger-Themen 6
L Wie wird ein 2 Dimensionales Array befüllt? Java Basics - Anfänger-Themen 6
C Array Aktualisierung wird nicht im Tooltip angezeigt Java Basics - Anfänger-Themen 2
H Array wird verändert ohne Rückgabe? Java Basics - Anfänger-Themen 7
P Datentypen String auf JTextField wird zu Char-Array und anschließend zu int Java Basics - Anfänger-Themen 12
A Array wird nicht durchlaufen Java Basics - Anfänger-Themen 10
F Variablen String-Array wird ungewollt "überschreiben" Java Basics - Anfänger-Themen 7
M Array wird beim Neuaufruf nicht neu initialisiert Java Basics - Anfänger-Themen 9
D Erste Schritte Warum wird bei einem Array die Länge über Length ausgegeben? Java Basics - Anfänger-Themen 6
A Ein Array aus einer Klasse wird nicht sauber abgefüllt Java Basics - Anfänger-Themen 4
A OOP Array wird ohne grund sortiert?! Java Basics - Anfänger-Themen 4
I Array und variable gleicher wert, wird jedoch nicht erkannt Java Basics - Anfänger-Themen 4
B Array-objekte,. Es wird ein Fehler ausgegeben Java Basics - Anfänger-Themen 11
B Array von Choice wird nicht von getSelectedItem erkannt Java Basics - Anfänger-Themen 3
A Zeichenkette teilen mit Substring oder Char Array Java Basics - Anfänger-Themen 14
A 6. Element aus einem Array zurückgeben Java Basics - Anfänger-Themen 1
A Was bedeutet bei einem Array "int a [MAX][MAX];", Java Basics - Anfänger-Themen 7
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
S Array mit Methode löschen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben