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:
Die Methode getAttribute rufe ich auf!
Danke schonmal!
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!