[Java] abspeichern - set collections??

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von david6446, 12. Januar 2012 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 12. Januar 2012
    abspeichern - set collections??

    hi ich habe eine frage, und zwar:
    ich möchte ein paar sachen zwischenspeichern und später ausgeben.
    jedes element soll nur einmal vorkommen und falls es nochmal eingefügt werden sollte, soll stattdessen eine Anzahl erhöht werden.

    meine erste idee waren collections mit set. doch da hab ich keine idee für den "zähler". Jemand ne idee??
     
  2. 12. Januar 2012
    AW: abspeichern - set collections??

    Für diesen Zweck könntest du eine Map nehmen. Müsstest zu jedoch ein bisschen abändern.

    Meine erste Idee wäre, dass du von Map erbst und eine eigene put Methode schreibst, welche dann den Zähler automatisch raufzählt.
    Oder einfach eine Klasse schreibst die eine Map verwendet und das gewünschte zurückliefert.

    Könnte so aussehen:

    Code:
    public class OwnCollection {
    
     // String muss mit dem gewünschten Datentyp ersetzt werden
     private Map<String, Integer> map
    
     public OwnCollection() {
     map = new HashMap<String, Integer>();
     }
    
     public void addElement(String element) {
     if(map.containsKey(element)) {
     map.get(element)++;
     } else map.put(element);
     }
    
    }
    
    Hab den Code jetzt nur schnell geschrieben, er ist nicht getestet!!!

    Könntest aber auch einen eigenen Datentyp machen und dann mit diesen arbeiten.

    Hoffe, das hat dir geholfen!
     
  3. 12. Januar 2012
    AW: abspeichern - set collections??

    Code:
    import java.util.HashMap;
    
    public class Testklasse {
    
     private static HashMap<String, Integer> data = new HashMap<String, Integer>();
    
     public static void main(String args[]) {
    
     addToHashMap("blubb");
     addToHashMap("blabb");
     addToHashMap("blibb");
    
     addToHashMap("blubb");
    
     for( String key : data.keySet() ) {
     System.out.println("Key: " + key + " Value: " + data.get(key));
     }
    
     }
    
     public static void addToHashMap(String key) {
     if( data.containsKey(key) ) {
     data.put(key, data.get(key) + 1);
     }
     else {
     data.put(key, 1);
     }
     }
    
    }
    

    Ausgabe:
    Code:
    Key: blabb Value: 1
    Key: blubb Value: 2
    Key: blibb Value: 1
    

    Code:
    map.get(element)++;
    Geht nicht.


    Ist quasi nur eine Methode hinzufügen. Je nach Design brauch man dazu nicht unbedingt extra ne eigene Klasse aufmachen....
     
  4. 12. Januar 2012
    AW: abspeichern - set collections??

    Code:
    map.get(element)++;
    
    ok, war mir jetzt nicht sicher ob das geht. Hab ja dazu geschrieben, dass der Code nicht getestet ist. Aber denke mal der Sinn dahinter ist zu verstehen.

    Ist jetzt aber nicht bös gemeint. Bin immer für Kritik offen
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.