Probleme mit ArrayList
-
Hallo Leute,
ich habe mir mal gedacht ein Programm zuschreiben was meine Einnahmen und Ausgaben auflistet. Es ließt zeilenweise eine Textdatei aus (und schreibt zeilenweise hinein). Da ich noch neu bin hab ich folgende Probleme:
**1.**Wenn ich die Größe meines Arrays mehrmals auslese verdoppelt sich der Wert immer
Size.setText(Cash.Data.size() + " Einträge in der Datenbank");
2. Mein Programm speichert nur Textzeilen und ließt diese aus. Doch leider kann man damit z.B keine Differenz berechnen. Wie erstelle ich eine ArrayList die
erst Betrag und dann Zweck speichert und man diese getrennt ausließt?Schonmal danke!
-
3. Was ist eine Hashmap / ein Hashtable?
-
Moin,
1. Der Code reicht nicht aus um einen möglichen Fehler zu erkennen, bitte mehr posten.
2. Wie sehen denn Deine Textzeilen aus? Wie eine CSV-Datei, also dass Beträge und die dazugehörigen Informationen durch ein Trennzeichen (z.B. Semikolon, Doppelpunkt, o.a.) gelistet sind? Dann müsstest Du einfach die Zeile mit String.split() durcharbeiten oder einen StringTokenizer verwenden.
3. Eine Hashmap ist eine Map, die aber immer zwei Parameter speichert: Schlüssel und Wert.
Hashtable ist eine Implementierung, die in früheren Versionen genutzt wurde, Hashmap ist die neuere Variante.Gruß,
Puni
-
Schonmal vielen Dank Puni
Am Anfang des Programmes wird die Textdatei ausgelesen und jede Zeile in meiner ArrayList gespeichert. Beim RefreshButton wird nochmal alles ausgelesen und gespeichert. Problem gelöst denn bevor jetzt nochmal eingelesen wird wird gespeichert und die ArrayList geleert.
Zu Frage 2: Was würdest du empfehlen (String.split() oder Tokenizer)?
Und was meinst du mit EINEN String Tokenizer reicht der in der Java API nicht aus?
-
Suns Empfehlung lautet String.split zu verwenden.
-
koenntest auch mit der utility klasse "Scanner" einlesen, da gibts methoden wie hasNextInt(), nextInt() usw, mit der er dir aus der text file halt immer den nächsten gewünschten wert raus-parsed
falls du eine .ini oder .cfg oder sowas in der art machen willst gibt es eine Properties klasse die extra dafür da ist sowas einzulesen, also in der art
MaxPing = 40
MSBeforeKick = 10000oder du könntest xml nehmen, sax parser sind leicht zu verwenden
-
Puni schrieb:
3. Eine Hashmap ist eine Map, die aber immer zwei Parameter speichert: Schlüssel und Wert.
Hashtable ist eine Implementierung, die in früheren Versionen genutzt wurde, Hashmap ist die neuere Variante.der Hauptunterschied besteht darin, dass die Hashtable synchronisierte Methoden hat.
Wenn du keine "thread-safe" Operationen ausführen musst empfiehlt sich auf jeden Fall die HashMap (darf auch einen null Key besitzen)