Ich gehe davon aus, dass die Ausgabereihenfolge wurden zuerst begegnet, in welcher Reihenfolge die Schlüssel respektieren muss. Zum Glück haben die cleveren Java-Bodies dafür ein Objekt entworfen: java.util.LinkedHashMap
.
So richten Sie Ihre Objektspeicher
java.util.Map<String, Integer> map = new java.util.LinkedHashMap<>()
Notiere die Phantasie Diamant Notation.
Dann mit name
als String, schreiben Sie etwas wie
if (map.containsKey(name)){
map.put(key, map.get(key) + 1);
} else {
map.put(key, 1);
}
Dieses ein wenig optimiert werden könnte: Sie sich darauf verlassen können, dass map.get(key)
null
wenn key
sein wird, ist nicht vorhanden. Dies beseitigt die Notwendigkeit für den Anruf containsKey
.
schließlich zur Ausgabe verwenden, um Ihre Werte etwas auf den Linien von
for (java.util.Map.Entry<String, Integer> entry : map.entrySet()){
/*ToDo - use entry.getKey() and entry.getValue()*/
}
Wenn Sie Ihre Ausgabe auf den Tasten sortiert werden wollen, dann stattdessen ein java.util.TreeMap
verwenden. Wenn die Reihenfolge der Ausgabe für Sie keine Rolle spielt, verwenden Sie eine java.util.HashMap
.
Wählerisch hier, aber muss die Ausgabe in dieser bestimmten Reihenfolge sein, oder wäre alphabetisch (oder sogar willkürlich) zulässig? – Bathsheba
Und was hast du schon ausprobiert? Und warum hast du noch nichts probiert? – f1sh
Im Idealfall sollte es in aufsteigender Reihenfolge sortiert werden, aber ich weiß, wie es geht. –