Durchlaufen von Vektoren

Status
Nicht offen für weitere Antworten.
Ich habe folgendes Problem: (Google und Co konnten mir auch nicht wirklich helfen)

Ich habe einen Vektor mittels while(true) und break; durchlaufen.. Funktioniert auch wunderbar AUSSER, dass auf manchen Systemen eine ConcurrentModificationException fliegt...

Nun habe ich ein Codebeispiel, welches ich für dieses Problem anwenden muss aber ich schaffe es nicht den Teil zu adaptieren :(

Bisher (Bsp.):
Code:
while(true) {
   tempFiles.get(i).insertData(fachFiles.get(k).getNextElement());
}

soll das werden (Bsp.):

Code:
for (Student stud : fachFiles.get(i)) {
  tempFiles.insertData(stud);
}

Eigentlich einfach, aber ich brauche bereits eine weitere Information, wo genau ich im Vector auslesen will. Das ist genau mein Problem.

Im folgenden Code ist konkret das Problem, dass ich nicht einfach mit einem Iterator i über fachFiles.get(i) laufe, sondern genau das richtige "Fach" auswähle, im unteren Code "tmp.getMnr()[5]". Dazu muss ich aber erst mein "tmp" beschreiben und da liegt mein Problem.

Wie kann ich die vorgegebe Struktur hier einsetzen OHNE, dass ich tmp schon kenne...

Code:
while (true) {
                  // Read new student from inputFiles
		tmp = inputFiles.get(index).getNextElement();
		// Get new Student from tmp and store in Fach according to
		// last digit of MatNr.
		fachFiles.get(tmp.getMnr()[5]).insertData(tmp);
}

Wäre um jede Hilfe dankbar !
 

Der Müde Joe

Top Contributor
du kannst nicht änderungen an der Collection während dem durchlaufen machen

ein clone hilft schon

Vector shallowCopy = myVector.clone();
 
Danke für die schnelle Reaktion !

Leider geht das so nicht. Eclipse sagt mir dazu "Cannot convert from Objekt to vector"

Oder habe ich deinen Vorschlag falsch verstanden ?

Code:
Vector ClonVektor = fachFiles.clone();
			for(Student stud : CloneVektor.get(tmp.getMnr()[5]) {
 

Der Müde Joe

Top Contributor
Code:
Vector<String> v = new Vector<String>();
v.add("1");
v.add("2");
v.add("3");
		
for(String s : v){
	v.remove(s); //geht nicht
}
		
Vector<String> v2 = (Vector<String>)v.clone();

for(String s : v2){
	v.remove(0); //ok ((nur als Bsp)
}
}
 
oje, ja hab ich. Da hätte ich auch drauf kommen sollen. Genauso, wie darauf, dass ich nur mein Problem geklont habe :(

Ich kann ja nur über das array iterieren und somit dort keine Abfragefunktion aufrufen.

Code:
Vector CloneVektor = (Vector)fachFiles.clone();
			for(Student stud : CloneVektor.get(inputFiles.get(index).getNextElement().getMnr()[5]) {
				// Read new student from inputFiles
				//tmp = inputFiles.get(index).getNextElement();
				// Get new Student from tmp and store in Fach according to
				// last digit of MatNr.
				fachFiles.get(stud.getMnr()[5]).insertData(stud);
			}

Aber den Code hattest Du wohl nicht im Sinn. Wie kann mir der Clon bei meinem Problem helfen ?
 

Der Müde Joe

Top Contributor
ääähhhhmmm?
what den that?

Code:
CloneVektor.get(inputFiles.get(index).getNextElement().getMnr()[5]

hum?
und das?

Code:
fachFiles.get(stud.getMnr()[5]).insertData(stud);

von einem Student ein Nummer hohlen die ein Array ist was als Identifier für ein fachFile ist und
dann den Student irgend? hinzufügen.


Code:
Vector copy = (Vector)fach.clone();

for(Strudent s : copy){
fach.doSomethingOnOriginal(s);
}

das geht doch sicher einfacher...
 
na ja, das ist mein OriginalCode, ich habe ihn noch mal kommentiert.

(Ein Try/Catch Block terminiert die Endlosschleife)

Code:
while (true) {
				// Auslesen in ein Student-Objekt aus den InputFiles an der stelle index, welcher mit einer
                                // for-Schleife durchlaufen wird
				tmp = inputFiles.get(index).getNextElement();
				// Jetzt lese ich die letzte Stelle der Matrikelnummer aus "tmp.getMnr()[5]" und
                                // mache das Fach auf, in das ich (zwecks Sortierung) meinen Student "tmp" schreiben muss
                                fachFiles.get(tmp.getMnr()[5]).insertData(tmp);
			}

Beim unteren Code von Dir wird wenn ich das richtig lese in das Objekt "s" nacheinander die Werte von "copy" eingelesen
und dann immer das gleiche am Original-Vektor durchgeführt.

Aber mein Problem ist ja, dass ich die Info aus "s" brauche um davon abhängig (letzte Stelle MatNr) immer ein anderes
Fach aufmachen. Java bringt mich noch zum verzweifeln :(

Code:
Vector copy = (Vector)fach.clone();

for(Strudent s : copy){
fach.doSomethingOnOriginal(s);
}
 

Der Müde Joe

Top Contributor
ok..kapiert...mehr oder weniger..

Code:
//jeder Student studi
for(Student studi : inputFiles){  //da sind die Studies drin oder?

int lastNumberOf = studi.getLastNumber();  //die Klasse Student brauch so ne Methode
FachFile ff = fachFiles.get(lastNumberOf);  // das Fach oder so?
ff.add(studi); // add den Studi dem Fach

}

hab ich das richtig verstanden?
 
Unglaublich, aber wahr: Ich habe es endlich geschafft ! Vielen dank für die Hilfe !!!

Zur Info:

Mit diesem Code hat es dann funktioniert:

Code:
for (Student stud : inputFiles.get(index)) {
                         //mache ich nur, weil es später in tmp stehen muss				
                         tmp=stud;
			 //ist hier benötigter code
                          fachFiles.get(tmp.getMnr()[5]).insertData(stud);
}

Allerdings fliegt mir diese Exception nicht nur einmal :x aber das sollte ich dann alleine schaffen...

Schönen Abend noch und Grüße aus Wien.[/code]
 
B

bygones

Gast
mhm... was macht ihr hier ??? warum clone... warum true und break... hab ich was uebersehen...

nutz einen iterator und aendere ueber den iterator !
 
G

Guest

Gast
deathbyaclown hat gesagt.:
mhm... was macht ihr hier ??? warum clone... warum true und break... hab ich was uebersehen...

nutz einen iterator und aendere ueber den iterator !

Der Clone wurde am ende nicht wirklich verwendet, hätte aber den Sinn gehabt (So habe ich es verstanden), dass man eine Info die man VOR dem auslesen braucht, vorher schon auslesen kann. Ist aber egal wurde nicht verwendet.

true und break hatten den Sinn, den Vektor zu durchlaufen OHNE die Anzahl der gespeicherten Elemente zu kennen.

Deswegen auch kein Iterator.

Wenn es unklar ist, schau dir mal den ersten Post an und dann den über deinem, dann siehst Du was Problem und Lösung waren.
 
B

bygones

Gast
das clone kloniert einfach mehr nicht....

mhm ich denke du hast den sinn von iteratoren nciht verstanden, da musst du nicht wissen wieviele elemente im vector sind.

Iterator it = vector.iter();
while(it.hasNext()) {
it.next(); // was damit machen
}
da ein vector nix anderes als ein array ist kannst du auch
for(int i = 0; i < vector.size(); i++) {
vector.get(i);
oder mit java 5
for(Object o : vector) {
// mach was mit o
}
 

Der Müde Joe

Top Contributor
deathbyaclown hat gesagt.:
for(Object o : vector) {
// mach was mit o
}

Sowie ich verstanden habe macht er etwas mit vector und nicht mit
o was man eigentlich würde. Darum gibts eine ConcurrentModificationException.

Und um das sichtbare hat es noch irgend eine Schleife welche Elemente aus
einem anderen Vector holt, welche irgendwelche Vectoren beinhaltet.

Jedenfalls will er während der Schleife (einer Schleife) den vector verändern, was
nicht geht und ne ConcurrentModificationException schmeisst....
 
B

bygones

Gast
natuerlich geht das nicht, daher iterator und ueber den iterator aendern
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Bugs Bunny Fehlerhafte Berechnung beim erneuten Durchlaufen der Schleife Java Basics - Anfänger-Themen 5
1 Array rekursiv durchlaufen Java Basics - Anfänger-Themen 8
Cassy3 Binäre Bäume Rekursiv durchlaufen und bestimmte Elemente Zählen Java Basics - Anfänger-Themen 6
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
E Baum pfadweise durchlaufen Java Basics - Anfänger-Themen 11
S Array X-mal durchlaufen und dann N-mal durchlaufen Java Basics - Anfänger-Themen 20
W Eigener Iterator soll mehrdimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
B Klassen Alle Unter-Objekte durchlaufen in der Hauptklasse Java Basics - Anfänger-Themen 10
I Methoden Schleife immer wieder durchlaufen lassen Java Basics - Anfänger-Themen 15
S Rekursives Durchlaufen eines Verzeichnisses - AccessDeniedException behandeln Java Basics - Anfänger-Themen 1
T Objekt-Arrays mit einer Schleife durchlaufen/ausgeben Java Basics - Anfänger-Themen 2
B Durchlaufen von Hashmap und Arraylist Java Basics - Anfänger-Themen 8
B OOP Liste durchlaufen Java Basics - Anfänger-Themen 12
G Mehrere If-else-Sätze der Reihe nach durchlaufen lassen Java Basics - Anfänger-Themen 2
C Laufzeitverhalten beim zeilenweise durchlaufen eines 2 dimensional array Java Basics - Anfänger-Themen 6
W If_Bedingung in statischer Methode beim zweiten Mal nicht durchlaufen Java Basics - Anfänger-Themen 14
L Klassen nacheinander durchlaufen? Java Basics - Anfänger-Themen 5
A do while Schleife wird 2 mal durchlaufen Java Basics - Anfänger-Themen 3
J Baum rekursiv durchlaufen Java Basics - Anfänger-Themen 2
K Stammbaum durchlaufen (Iteration etc) Java Basics - Anfänger-Themen 9
D HashMap Keys durchlaufen Java Basics - Anfänger-Themen 2
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
A Array wird nicht durchlaufen Java Basics - Anfänger-Themen 10
A Treeset per For-Schleife durchlaufen Java Basics - Anfänger-Themen 2
K Objektbaum durchlaufen Java Basics - Anfänger-Themen 7
S Erfahrungswerte von schnelles durchlaufen von Listen mit 2 Werten Java Basics - Anfänger-Themen 10
A Datentypen Iterator von hinten nach vorne durchlaufen Java Basics - Anfänger-Themen 4
M Zweidimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
C dynamische JTextFields durchlaufen Java Basics - Anfänger-Themen 5
J äußere for schleife wird nur einmal durchlaufen Java Basics - Anfänger-Themen 8
T Datentypen Verschachtelte Map durchlaufen Java Basics - Anfänger-Themen 4
N Map Durchlaufen Java Basics - Anfänger-Themen 20
R Fehler in Rekursion (Unterordner durchlaufen) Java Basics - Anfänger-Themen 2
J Problem Arraylist durchlaufen Java Basics - Anfänger-Themen 7
K methode wird nur einmal korrekt durchlaufen Java Basics - Anfänger-Themen 4
B Array durchlaufen und sortieren Java Basics - Anfänger-Themen 9
N HashMap mit Iterator durchlaufen Java Basics - Anfänger-Themen 11
P Klassen-konstanten durchlaufen Java Basics - Anfänger-Themen 9
M Durchlaufen von Sets Java Basics - Anfänger-Themen 11
H Monat durchlaufen Java Basics - Anfänger-Themen 2
W Textfiles durchlaufen Java Basics - Anfänger-Themen 11
M Durchlaufen eines Verzeichnisbaums Java Basics - Anfänger-Themen 5
G Rekursion mit Return - Baum durchlaufen Java Basics - Anfänger-Themen 4
F Objektnamen mit Schleife durchlaufen. Java Basics - Anfänger-Themen 10
G [Threads]: Mit mehreren Threads 1 ArrayList durchlaufen Java Basics - Anfänger-Themen 19
G HashMap durchlaufen und alle keys mit values ausgeben Java Basics - Anfänger-Themen 4
M Variablen einer Klasse zu durchlaufen möglich? Java Basics - Anfänger-Themen 5
K 2D Array spaltenweise durchlaufen Java Basics - Anfänger-Themen 4
G Baumstruktur rekursiv durchlaufen Java Basics - Anfänger-Themen 2
M Textfile durchlaufen und ersetzen Java Basics - Anfänger-Themen 2
M textboxen mit schleife durchlaufen. Java Basics - Anfänger-Themen 5
G Alle Componente eines JFrame durchlaufen Java Basics - Anfänger-Themen 3
P Schleife wird falsch durchlaufen!? Java Basics - Anfänger-Themen 3
H HashMap durchlaufen Java Basics - Anfänger-Themen 4
M Verzeichnisse rekursiv durchlaufen und dann RegEx Java Basics - Anfänger-Themen 6
G Array mit Schleife durchlaufen - guter Stil? Java Basics - Anfänger-Themen 20
K durchlaufen einer methode zählen Java Basics - Anfänger-Themen 15
M for-Schleife und Variablen automatisch durchlaufen Java Basics - Anfänger-Themen 2
W Baum durchlaufen Java Basics - Anfänger-Themen 3
M String mit For Each durchlaufen Java Basics - Anfänger-Themen 4
E liste rekursiv durchlaufen? Java Basics - Anfänger-Themen 3
S NameValuePair durchlaufen Java Basics - Anfänger-Themen 4
D Verzeichnisse rekursiv durchlaufen Java Basics - Anfänger-Themen 3
M HashMap durchlaufen: Was stimmt nicht? Java Basics - Anfänger-Themen 7
T Vektoren Java Basics - Anfänger-Themen 11
J Vektoren Add gibt nicht das aus was es sollte Java Basics - Anfänger-Themen 3
J Vektoren (2-dimensional) Java Basics - Anfänger-Themen 2
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
D Vektoren Initialisieren Java Basics - Anfänger-Themen 1
B Kreuzprodukt zweier Vektoren (Erste Java Aufgabe - Hilfestellungen und Tips erwünscht) Java Basics - Anfänger-Themen 4
S OOP Werte von Vektoren mit 3 Variablen ausgeben lassen Java Basics - Anfänger-Themen 3
M n-dim Vektoren mit Arrays Java Basics - Anfänger-Themen 3
C Inhalte zweier Vektoren vergleichen Java Basics - Anfänger-Themen 3
J Wie erstelle ich Vektoren? Java Basics - Anfänger-Themen 5
N Matrix/Vektoren Java Basics - Anfänger-Themen 3
N Vektoren, Methode Java Basics - Anfänger-Themen 10
S 3D Cube aus Vektoren Java Basics - Anfänger-Themen 20
G Vektoren speichern Java Basics - Anfänger-Themen 3
N Vektoren multiplizieren Java Basics - Anfänger-Themen 8
N Ausgabe von Vektoren Java Basics - Anfänger-Themen 3
L Suche Hilfe , Problem mit Vektoren und klassen Java Basics - Anfänger-Themen 21
R Vektoren Java Basics - Anfänger-Themen 6
S Vektoren und Objektwerte Java Basics - Anfänger-Themen 4
V Vektoren zur Laufzeit erzeugen Java Basics - Anfänger-Themen 7
F Ein Array von Vektoren, Eclipse meckert Java Basics - Anfänger-Themen 12
M Prinzipielle Frage zu Vektoren Java Basics - Anfänger-Themen 2
H Vektoren aus einem String! Java Basics - Anfänger-Themen 2
F Welche Datenstruktur für Matrix mit Vektoren? Java Basics - Anfänger-Themen 2
W Verwalten von Objekten - Listen, Vektoren usw. Java Basics - Anfänger-Themen 6
M Zwei ineinanderverschachtelte Vektoren - generics möglich? Java Basics - Anfänger-Themen 3
W Addition von Arrays bzw. Vektoren Java Basics - Anfänger-Themen 2
F Vektoren Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben