[Java] Daten unbekannter Anzahl in ein Array lesen

Loopo

Admiral
Registriert
Juli 2002
Beiträge
7.617
Ich möchte Daten einlesen (per Benutzereingabe oder Datei) und diese in einem Array speichern. Leider weiß ich nicht zuvor, wie viele Datensätze gespeichert werden müssen.

Im Moment lasse ich eine Funktion, die immer einen Datensatz abfragt und diesen in ein neu generiertes Array schreibt, sich selbst aufrufen bis keine Datensätze mehr vorhanden sind. Anschließend gibt die Funktion das Array zurück. Das heißt bei jeder Rekursion entsteht ein neues Array, dass um 1 Datensatz größer als das vorhergehende ist, was natürlich unnötig Speicher verbraucht.

Gibt es elegantere Lösungen, ein Array zu vergrößern?
 
Ganz dumme Frage: Muß es denn unbedingt ein Array sein?
Wie wär's mit nem Vector, List oder einer anderen Collection?
Diese kann man glaub dann zur Not auch per Methode in ein Array umwandeln/einlesen, wenn du unbedingt eines zwecks Übergabeparameter o.ä. benötigst.
 
Das mit dem Vector werde ich mir bei Zeiten ansehen. :)
 
ich würde dir in diesem fall eine verkettete liste empfehlen, sollte noch einfacher zu realisieren sein als mit nem vektor.
 
Mein Tipp: ArrayList
Verwendet intern ein Array, das aber besser verwaltet wird.
Zur Not könntest aber auch einen Blick auf System.arraycopy() werfen. Damit kannst du sehr effektiv Arrays kopieren.
Verkettete Listen sind aufwändiger bei der Umwaldlung in ein Array.
 
Zurück
Oben