Hallo zusammen
Ich komme gerade nicht weiter.
Momentan programmiere ich eine Programm, dass mir Daten von Fussballspielen aus einem csv verwendet.
Und zwar hole ich da pro Spieltag die Ergebnisse raus. Also Spieltag 1 Bayern - BVB 0:2, Spieltag 1 Köln - Main 3:1 etc.
Nun berechne ich dazu in einem weiteren csv jeweils die kumulierten Tore (geschossen heim, geschossen auswärts, erhalten heim, erhalten auswärts), kumulierte Punkte (gesamt, heim, auswärts) und die Serie der letzten 5 Spiele (gesamt, heim, auswärts) und dann jeweils noch die Tordifferenz (gesamt, heim, auswärts). Diese Daten sind dann da gespeichert. Soweit so gut. Das geht mal problemlos. Nun möchte ich aber pro Spieltag pro Team den Tabellenrang speichern.
Mein Gedanke war (wahrscheinlich etwas sehr umständlich), aber ich verwende ja den BufferedReader für das Lesen der csv. Die Teams habe ich in einer ArrayList. Nun wollte ich durch ArrayList der Teams durchgehen und dann mit einer for Schleife pro Spieltag berechnen welchen Platz das jeweilige Team hat. Geht eigentlich auch. Alle Daten werden aber wieder aus dem csv gelesen und in einen String geschrieben, dann mit dem berechneten Tabellenrang ergänzt und schlussendlich (wenn beide Schleifen durch sind) wird der String wieder in das File zurückgeschrieben. Mit einem Spieltag geht das noch ganz gut. Mit zwei auch noch. Aber bei 36 Spieltagen geht das extrem lange. Ich dachte mir das aber auch schon, da es ja wirklich sehr umständlich ist.
Ich muss ja innerhalb der zweiten Schleife (Spieltage) ja auch zweimal auf das ganze csv zugreifen. Beim ersten Mal um die Punkte und Tordifferenz des aktuellen Teams zu holen, und dann muss ich ja wieder von vorne beginnen und wieder durch das ganze File hindurchzuarbeiten.
Es geht mir grundsätzlich nicht zwingend um den Code an sich, sondern mehr um einen anderen Weg wie ich mich hierdurcharbeiten kann. Ich habe ja alles was ich brauche bereits in einem csv. Aber den Weg den ich einschlage braucht einfach zu viel Ressourcen / Zeit. Gibt es da allenfalls andere Vorgehensweisen wie ich an mein Ziel komme? Ich habe mir schon ArrayList überlegt oder Maps. Aber da komme ich nicht drauf wie ich die Daten dann auch vergleichen und den Rang ermitteln kann.
Habt ihr da eine Idee? Und so noch nebenbei, die Berechnung an sich stimmt, also das ist nicht das Problem. Die Ränge werden korrekt berechnet.... Also auch das ist dann kein Problem.
Vielen Dank
Ich komme gerade nicht weiter.
Momentan programmiere ich eine Programm, dass mir Daten von Fussballspielen aus einem csv verwendet.
Und zwar hole ich da pro Spieltag die Ergebnisse raus. Also Spieltag 1 Bayern - BVB 0:2, Spieltag 1 Köln - Main 3:1 etc.
Nun berechne ich dazu in einem weiteren csv jeweils die kumulierten Tore (geschossen heim, geschossen auswärts, erhalten heim, erhalten auswärts), kumulierte Punkte (gesamt, heim, auswärts) und die Serie der letzten 5 Spiele (gesamt, heim, auswärts) und dann jeweils noch die Tordifferenz (gesamt, heim, auswärts). Diese Daten sind dann da gespeichert. Soweit so gut. Das geht mal problemlos. Nun möchte ich aber pro Spieltag pro Team den Tabellenrang speichern.
Mein Gedanke war (wahrscheinlich etwas sehr umständlich), aber ich verwende ja den BufferedReader für das Lesen der csv. Die Teams habe ich in einer ArrayList. Nun wollte ich durch ArrayList der Teams durchgehen und dann mit einer for Schleife pro Spieltag berechnen welchen Platz das jeweilige Team hat. Geht eigentlich auch. Alle Daten werden aber wieder aus dem csv gelesen und in einen String geschrieben, dann mit dem berechneten Tabellenrang ergänzt und schlussendlich (wenn beide Schleifen durch sind) wird der String wieder in das File zurückgeschrieben. Mit einem Spieltag geht das noch ganz gut. Mit zwei auch noch. Aber bei 36 Spieltagen geht das extrem lange. Ich dachte mir das aber auch schon, da es ja wirklich sehr umständlich ist.
Ich muss ja innerhalb der zweiten Schleife (Spieltage) ja auch zweimal auf das ganze csv zugreifen. Beim ersten Mal um die Punkte und Tordifferenz des aktuellen Teams zu holen, und dann muss ich ja wieder von vorne beginnen und wieder durch das ganze File hindurchzuarbeiten.
Es geht mir grundsätzlich nicht zwingend um den Code an sich, sondern mehr um einen anderen Weg wie ich mich hierdurcharbeiten kann. Ich habe ja alles was ich brauche bereits in einem csv. Aber den Weg den ich einschlage braucht einfach zu viel Ressourcen / Zeit. Gibt es da allenfalls andere Vorgehensweisen wie ich an mein Ziel komme? Ich habe mir schon ArrayList überlegt oder Maps. Aber da komme ich nicht drauf wie ich die Daten dann auch vergleichen und den Rang ermitteln kann.
Habt ihr da eine Idee? Und so noch nebenbei, die Berechnung an sich stimmt, also das ist nicht das Problem. Die Ränge werden korrekt berechnet.... Also auch das ist dann kein Problem.
Vielen Dank