Re: Problem bei Java ArrayList Programmierung
Geizhals » Forum » Programmierung » Problem bei Java ArrayList Programmierung (30 Beiträge, 544 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.  Re: Problem bei Java ArrayList Programmierung
 (mko am 01.11.2013, 16:24:09)
.
Re: Problem bei Java ArrayList Programmierung
01.11.2013, 21:05:31
EDIT: Meine Idee verwendet leider nicht die geforderte, sinnlose Fehler Klasse.
Du kannst die Idee aber leicht adaptieren indem du in der Map als Value die Fehlerklasse verwendest und die Methoden des Fehler Objekts aufrust.

Ich empfehle dir hier eine sinvollere Datenstruktur als eine ArrayList zu verwenden, nämlich eine Map (In anderen Sprachen Dictionary genannt).

Eine Map ist so etwas wie eine Arraylist, allerdings hat jede "Zeile" einen eindeutigen Schlüssel und ein dazu gespeichertes Objekt. Es ist also so etwas wie ein zweidimensionales Array in dem derselbe Wert nicht mehr als einmal in der ersten Spalte auftreten darf.
Map selbst ist lediglich ein Interface von dem du eine Implementierung verwenden musst.

Beispiel:

HashMap<String, Integer> map = new HashMap<String, Integer>;

Wobei links der String der Schlüssel ist, in deinem Fall also der Fehlername und rechts die Anzahl.
Hashmap braucht import java.util.* oder import java.util.HashMap

Zusatzinfo: Ebenfalls erlaubt ist es als Typ das Interface festzulegen:
Map map = new HashMap);

Die Hinzufüge Methode bei Maps heißt put(key, value). Falls schon vorhanden überschreibt put den Wert eines Schlüssels.

Die Methode add(String errorType, int amount) in der Klasse Registrierung schaut also etwas so aus:

if (!map.containsKey(errorType))
   map.put(errorType, amount);
else
  map.put(errorType, amount +map.get(errorType));

und getAmount(String errorType)

if(map.containsKey(errorType))
   return map.get(errorType);
else
   return 0;

Nach if und else Zeilen müssen keine Klammern folgen falls sie sich nur auf den Code bis zum nächsten ; beziehen.


test
01.11.2013, 21:10 Uhr - Editiert von Diabolo2000, alte Version: hier
Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung