2017-05-03 2 views
0

So habe ich einige Schwierigkeiten, diesen Code zu verstehen. Der for-each gibt die Strings aus dem Array zusammen mit einem Zähler ein, der die Anzahl der identischen Strings zählt, aber wie macht der Zähler das?Array in eine hashmap mit Zähler einfügen

Was ist die Zahl, die an entgegengeben wird: Integer count = map.get(nextString);

Und was tun die if-Anweisungen zu tun?

 HashMap<String, Integer> map = new HashMap<>(); 

    for (String nextString : inArray) { 

     Integer count = map.get(nextString); 

     if (count == null) { 

     count = 1; 

     } else { 

     count = count + 1; 

     } 

     map.put(nextString, count); 

    } 
+0

Was genau ist die Frage? –

+0

Wissen Sie, wie eine Java HashMap funktioniert? –

Antwort

1
HashMap<String, Integer> map = new HashMap<String, Integer>(); 

Dies wird initialisiert nur unsere HashMap, nichts Kompliziertes.

for (String nextString : inArray) { 

    Integer count = map.get(nextString); 

Hier suchen wir für den Wert im Zusammenhang mit unserem Schlüssel (in diesem Fall ein String aus unserem Array).

if (count == null) { 

     count = 1; 

Weil wir die Karte mit der Anzahl, wie oft eine bestimmte Zeichenfolge auftritt aktualisieren, wenn es kein Wert im Zusammenhang mit unserem Schlüssel dann hat diese Saite noch nicht gezählt, so setzen wir count-1 weil es das erste Vorkommen dieses Strings in unserem Array ist.

} else { 

     count = count + 1; 

Wenn die oben if-Anweisung nicht ausgeführt werden, das bedeutet, dass ein Wert mit der Zeichenfolge zugeordnet ist, so können wir es es nur erhöhen, dann in der Karte setzen.

} 

    map.put(nextString, count); 

} 
+0

Super, danke schön! – VICWICIV

+1

Bitte korrigieren Sie die faule Identität und kopieren Sie stattdessen einfach den unordentlichen Stil, den das OP verwendet. – GhostCat

+0

Sortiert, vielen Dank, dass Sie darauf hingewiesen haben. –

Verwandte Themen