質問: new HashMap(); cntMap.put("合計カウント数","20"); cntMap.put("カウント成功","17"); cntMap.put("カウント失敗","3"); cntMap.put("カウントプロセス数","3"); cntMap.put("合計レコード数","100"); cntMap.put("レコード成功","70"); cntMap.put("レコード失敗","30"); ``` これをタグを使ってMapのkeyとvalueを繰り出し出力させる処理を実行したいのですが、思った通りの出力をしてくれません。 イメージは以下のような形式で出力させたいです。 ``` <出力イメージ> 合計カウント数 20 カウント成功 17 カウント失敗 3 カウントプロセス数 3 合計レコード数 100 レコード成功 70 レコード失敗 30 ``` ``` ``` 出力イメージの形式で表示するにはどうしたらいいのでしょうか? どなたか分かる方がおられましたらご教示ください。
回答: Mapに値を挿入した順番通りに出力したい、ということですよね? その場合はHashMapではなくLinkedHashMapを使ってみてください。 HashMapだとキーの挿入順序を保持しないため出力時の並びは保証されません。(適当な並び順になります。) LinkedHashMapはデフォルトでキーが挿入された順序を保持するため、挿入した順番通りに繰り返し処理が行われるはずです。 ※ちなみに、Hashtableだと大きいものから小さいものへ、TreeMapを使うと小さいものから大きいものへといった順番での処理が可能です。