2016-06-10 16 views
0

Ich habe diese versuchtWie kann ich HashMap <String, ArrayList <Integer>> drucken?

ScreenDumpParser dump = new ScreenDumpParser(); 
    Map btn_bound = dump.parse(); 

    Iterator iterator = btn_bound.keySet().iterator(); 

    while (iterator.hasNext()) { 
     String key = iterator.next().toString(); 
     List<Integer> value = btn_bound.get(key); 

     System.out.println(key); 
    } 

aber diese Linie

List<Integer> value = btn_bound.get(key); 

gibt Fehler:

Type mismatch: cannot convert from Object to List<Integer> 

Ich muss zusammen mit dem Schlüssel in einer einzigen Zeile alle Werte drucken.

Antwort

0

Wenn Sie einen Wert zu Ihrer Liste hinzufügen möchten, sollten Sie verwenden:

value.add(btn_bound.get(key));

und wenn die Schaltfläche, um eine Liste oder etwas anderes müssen Sie mehr als einen Wert zu Ihrer Liste hinzufügen mit

value.addRange(btn_bound.get(key));

Und wenn Sie möchten, um einen Wert erhalten:

Object foo = value.get(btn_bound.get(key)); 
+0

Gießen ist hier völlig unnötig. Und diese 'Liste Wert = neue Liste (btn_bound.get (Schlüssel));' ist falsch (bedenken Sie, dass OPs Frage in Java ist). – Tom

+0

Als ich die Antwort schrieb fehlte das Sprach-Tag, also schrieb ich für Java und C#, aber ich bearbeite – SeeuD1

+0

Ja, ich weiß, dass das Tag fehlte, also keine Sorgen :). Wenn Sie etwas für zwei Sprachen schreiben, dann schreiben Sie klar, welcher Teil zu welcher Sprache gehört. Die 'neue Liste <..> (...)' Teil eindeutig nicht für Java (zum Beispiel). – Tom