HashMap gespeicherten Daten rausgeben?

Status
Nicht offen für weitere Antworten.

dorjpure

Mitglied
wie kann ich in Hashmap gespeicherten Daten rausgeben? ich habe das unten angegebene Programm geschrieben. In der Methode leseBoden soll die Datei boden.txt gelesen und in Hashmap gespeichert werden. In der Methode schreibe Boden soll die daten von Hashmap rausgegeben werden. Habe die main methode eingebaut und versucht auszuführen. Es funktioniert nicht. Kann jemand mir bitte einen Vorschlag geben? Danke

public class BodendatenT{
HashMap<String,BodenprobeT> bprobe = new HashMap<String,BodenprobeT>();
public void leseBoden(File name){
BufferedReader reader = new BufferedReader(new FileReader(name));
String line;
while ((line = reader.readLine()) != null) {
String[] data = line.split(",");
BodenprobeT w = new
BodenprobeT(data[0],Double.parseDouble(data[1]),Double.parseDouble(data[2]),Double.parseDouble(data[3]),Double.parseDouble(data[4]));
bprobe.put(w.name, w);
}

}
public void schreibeBoden(){
Iterator it=bprobe.keySet().iterator();
while(it.hasNext()){
String key=(String)it.next();
System.out.println(key+bprobe.get(key));
}
}



public static void main(String[] args){
BodendatenT a=new BodendatenT();
a.leseBoden(new File("boden.txt"));
a.schreibeBoden();
}
}
 
Was heisst "geht nicht"? Kriegst du eine unleserliche Ausgabe zu sehen? Dann implementiere die Methode
"String toString()" in der Klasse BodenprobeT, dann sollte es gehen.

Ansonsten würde ich die Schleife wie folgt aufbauen
Code:
StringBuilder buffer = new StringBuilder(1024);
for(Map.Entry<String,BodenprobeT> item : bprobe.entrySet())
{
   buffer.append(item.getKey())
         .append(item.getValue().toString())
         .append("\n");
}
System.out.print(buffer);
 
Kleine Korrektur
Code:
StringBuilder buffer = new StringBuilder(1024); 
for(Map.Entry<String,BodenprobeT> item : bprobe.entrySet()) 
{ 
   buffer.append(item.getKey()) 
         .append(item.getValue()) // toString() nicht nötig. StringBuilder rufft toString() selbst auf.
         .append("\n"); 
} 
System.out.print(buffer);
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben