Javaのテンプレートエンジン freemarker でMapのデータをぐるぐる回して表示させたいとき。
<#assign h = {"name":"mouse", "price":50}>
上記のようなMapの場合2通りの方法で実現できる。
?keysを使う方法
<#list h?keys as key>
${key} = ${h.get(key)}
</#list>
?keysを使うとkeyを一覧で取得できgetを使ってvalueを取得できる。
JavaのkeySetと同じ。
entrySet()を使う方法
<#list h.entrySet() as entry>
${entry.key} = ${entry.value}
</#list>
entrySet()を使う方法。
基本的にはこっちのほうがパフォーマンスは良いはず。こっちを使おう。
キーでソートしたいとき(+1)
<#list h?keys?sort as key>
${key} = ${h.get(key)}
</#list>
?keysは遅いんだけどkeyでソートしたいときは?sortででっきちゃうんで便利。