私は、出力順序は、キーが最初に遭遇された順序を尊重する必要があることを想定しています。幸いにも、巧妙なJavaのボディーは、その目的のオブジェクトを設計しました:java.util.LinkedHashMap
。
java.util.Map<String, Integer> map = new java.util.LinkedHashMap<>()
をお使いのストレージ・オブジェクトの使用を設定するには
はファンシーダイヤモンドの表記に注意してください。
はその後、文字列としてname
で、
if (map.containsKey(name)){
map.put(key, map.get(key) + 1);
} else {
map.put(key, 1);
}
ような何かを書くこれは少し最適化することができます:あなたはkey
が存在しない場合map.get(key)
はnull
になるという事実に頼ることができます。これにより、containsKey
コールが不要になります。
最後に、出力に自分の価値観は、あなたの出力は、代わりにjava.util.TreeMap
を使用するキーでソートしたい場合は
for (java.util.Map.Entry<String, Integer> entry : map.entrySet()){
/*ToDo - use entry.getKey() and entry.getValue()*/
}
の行に何かを使用しています。出力の順序が重要でない場合は、java.util.HashMap
を使用してください。
ここでピカピカですが、出力はその特定の順序である必要がありますか、アルファベット(あるいは任意の)でも許されますか? – Bathsheba
何を試しましたか?そして、まだ何も試してみませんか? – f1sh
理想的には、昇順でソートする必要がありますが、それを行う方法はわかります。 –