如何在java中使用胡子迭代地图

时间:2014-10-19 15:44:56

标签: java mustache

我是小胡子的新手,并且想知道如何使用小胡子HashMap来迭代Map

Map mapA = new HashMap();

mapA.put("key1", "element 1");
mapA.put("key2", "element 2");
mapA.put("key3", "element 3");

地图键名称各不相同。理想情况下,我希望小胡子迭代它的键和值。所以在java中它看起来像这样:

for (Map.Entry<String, Object> entry : mapA.entrySet()) {
   String key = entry.getKey();
   String value = entry.getValue();
   // ...
} 

所以有人可以告诉我如何在小胡子上面实现。我的意思是模板怎么样?我试过这个模板但到目前为止没有运气:(

{{#mapA}}
  <li>{{key}}</li>
  <li>{{value}}</li>
{{/mapA>

因此,当我运行此模板时,输出<li>标记为空,为什么? 谢谢。

2 个答案:

答案 0 :(得分:10)

我不知道小胡子,但基于我见过的一些代码示例,我认为您应该在Java代码中定义一个entrySet变量,如下所示

Set<Map.Entry<String,Object>> entrySet = mapA.entrySet();

并在小胡子代码

中使用它代替mapA
{{#entrySet}}
  <li>{{key}}</li>
  <li>{{value}}</li>
{{/entrySet}}

答案 1 :(得分:0)

正如上面提到的@Dici,您可以使用new SendButton("Send", "WhatIsYourName"); 。您不必在工厂中使用任何特殊选项,并可以将其直接传递给entrySet。如果模板非常简单,您可以在模板中使用顶级地图。

<强>爪哇

execute

小胡子模板(Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); Writer writer = new OutputStreamWriter(System.out); MustacheFactory mustacheFactory = new DefaultMustacheFactory(); Mustache template = mustacheFactory.compile("map.template"); template.execute(writer, map.entrySet()).close();

map.template

<强>结果

{{#.}}
keylabel:{{key}} : valuelabel:{{value}}
{{/.}}