• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

HashMap Problem - Nur der erste Eintrag verfügbar

Status
Für weitere Antworten geschlossen.

To_Bii

Minecrafter
Registriert
27 Januar 2014
Beiträge
14
Diamanten
0
Hallo zusammen,

ich habe ein ziemlich merkwürdiges Problem und hoffe das mir hier jemand mal helfen kann, ich blicke gerade einfach nicht mehr durch... Vielleicht ist es einfach nur ein dummer Denkfehler ^^.

Also ich habe in einer Klasse eine Hashmap, welche zuerst über eine Methode "befüllt" wird. Zu diesem Zeitpunkt beträgt die Größe der Hashmap (über .size() ) 4!

Wenn ich dann aber später über eine andere Methode der Klasse versuche die hashmap auszulesen funktioniert das nicht richtig:
-Ich kann nurnoch den ersten Eintrag abrufen und die Größe der hashmap (.size()) beträgt nurnoch 1!

Das wäre der Code:
Code:
    class [...]
     
    private HashMap<String, Integer> attributes = new HashMap<String,Integer>();
     
    [...]
     
    private HashMap<String, String> loadRawData(List<String> data) {
    HashMap<String, String> map = new HashMap<String, String>();
    if(data != null && !data.isEmpty()) {
     
    System.out.print("Länge der Liste:"+data.size());
    for(int i=0;i<data.size();i++){
    String dstring=data.get(i);
    dstring = ChatColor.stripColor(dstring);
     
    try {
    String[] kv = dstring.split(": ");
     
    map.put(kv[0], kv[1]);
    System.out.print(kv[0]+" "+ kv[1]);
    } catch (Exception e) {
    RPG.getPluginLogger().severe("Error.....");
    }
     
    }
    }
    System.out.print("Mapsize:"+map.size()); //hier ist die Map noch 4 (beispielhaft 4) groß
     
    [...]
    public boolean hasAttribute(String type) {
    System.out.print("leer?"+attributes.isEmpty());
    System.out.print("Test:"+attributes.get(type));
    System.out.print("Groesse der Map:"+attributes.size()); //hier ist sie nurnoch 1 groß!
    return attributes.containsKey(type);
     
    }
     
    public int getAttribute(AttributeType type) {
    int back=0;
    if (hasAttribute(type.getName())) {
    back= attributes.get(type.getName());
     
    }else{
    back=-1;
    }
    System.out.print("back:"+back);
    return back;
    }

Die Methode getAttribute rufe ich auf!


Danke schonmal!
 

MiCrJonas

Threadripper
Registriert
29 Oktober 2012
Beiträge
1.064
Diamanten
0
Ohne dass ich den kompletten Code sehen (auch das [...]), kann ich dir nicht helfen. Bitte poste den Code deiner kompletten Code der Klasse formatiert(!) und evtl. auch die anderen Methoden, die die gepostete Methode aufrufen.
 
Status
Für weitere Antworten geschlossen.
Oben