Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 迭代hashmap';ArrayList Freemarker中的s_Java_Arraylist_Hashmap_Freemarker - Fatal编程技术网

Java 迭代hashmap';ArrayList Freemarker中的s

Java 迭代hashmap';ArrayList Freemarker中的s,java,arraylist,hashmap,freemarker,Java,Arraylist,Hashmap,Freemarker,我有一个父ArrayList和两个子HashMap: List countries = new ArrayList(); Map<String, String> data_dummy = new HashMap<String, String>(); data_dummy.put("name", "abc"); data_dummy.put("surname", "xyz"); Map<String, String> data_dummy2 = new Ha

我有一个父
ArrayList
和两个子
HashMap

List countries = new ArrayList();

Map<String, String> data_dummy = new HashMap<String, String>();
data_dummy.put("name", "abc");
data_dummy.put("surname", "xyz");

Map<String, String> data_dummy2 = new HashMap<String, String>();
data_dummy2.put("name", "def");
data_dummy2.put("surname", "pqr");
countries.add(data_dummy);
countries.add(data_dummy2);
List countries=new ArrayList();
映射数据_dummy=new HashMap();
数据输入(“名称”、“abc”);
数据输入(“姓氏”、“xyz”);
映射数据_dummy2=新的HashMap();
数据2.put(“名称”、“定义”);
数据2.put(“姓氏”、“pqr”);
国家。添加(数据);
添加(数据2);
我正在尝试使用语法进行迭代:

 <#list countries as category>
   <#assign keys = countries[category]?keys>
   <#list keys as values>
     ${keys[values]}
  </#list>
</#list>

${键[值]}
它不起作用,请告诉我如何解决这个问题。 谢谢 Amit

尝试以下方法:

 <#list countries as category>
    <#assign keys = category?keys>
    <#list keys as key>
         ${category.get(key)}
    </#list>
 </#list>

${category.get(key)}

好吧,你搞错了,错过了一些东西,但我看到你从那以后的评论中意识到了这一点。但是,另一个(目前被接受的)答案不是任何人都应该做的。由于您的键是
String
-s,因此您可以使用
someMap[someKey]
。甚至对于非字符串键
someMap.get(someKey)
也只适用于特定的配置设置,这是非常不鼓励的,因为它将真正的
Map
键与方法名称混合使用。一团糟
someMap?api.get(someKey)
是现在更好的方法,因为这样方法名就不必污染密钥名称空间。(请注意,由于向后兼容的限制,它仍然需要一些额外的配置;手册对此进行了详细介绍。)

添加迭代代码我正试图在freemarker模板引擎中使用代码${keys[values]}对它进行迭代:${category[key]}这是我的迭代代码。它对我来说很有用,但有一点小技巧:${category[key]}感谢您对旧版本的freemarker的支持,
category[key]
是第2版的功能。3x@RichStone同意并感谢您的回答,请查看何时回答此问题以及何时提出此问题。答案不会随库的每个版本自动更新。@SMA如果我没有遵循此处的正确规则,很抱歉,但是由于在任何地方都没有提到该版本,因此可能会使试图复制此版本的人感到困惑。如果我直接编辑答案,例如在版本中添加提示,这会是更正确的方式吗?