我是Java的新手,我有一个问题,我无法弄清楚如何解决。 我有一个现有的HashMap,如下所示:
[
{
linkText=Link Text,
link=http://www.someurl.com,
heading=Asia},
{
linkText=Link Text,
link=http://www.someurl.com,
heading=Asia
}
{
linkText=Link Text,
link=http://www.someurl.com,
heading=Europe
}
{
linkText=Link Text,
link=http://www.someurl.com,
heading=Africa
}
]
我需要将这个HashMap转换为允许我在Mustache中执行此操作的内容:
<ul>
{{#linkGroups}}
<li>{{heading}}
<ul>
{{#links}}
<li><a href="{{link}}">{{linkText}}</a></li>
{{/links}}
</ul>
</li>
{{/linkGroups}}
</ul>
我认为我对现有数据类型没有足够的了解,这些数据类型允许嵌套这种性质。我已经尝试过使用HashMap,Set和Tree但它没有出现。我认为我最终使用的任何类型需要让我做这样的事情:
[
{
heading=Asia,
links= {
{
linkText=Link Text,
link=http://www.someurl.com
}
{
linkText=Link Text,
link=http://www.someurl.com
}
}
}
{
heading=Europe,
links= {
{
linkText=Link Text,
link=http://www.someurl.com
}
{
linkText=Link Text,
link=http://www.someurl.com
}
}
}
]
但我可能错了,并使对象复杂化。
任何指针都会非常感激。
答案 0 :(得分:1)
假设你创建了一个这样的类:
class Link
{
public String text;
public String url;
}
您所描述的结构可以用:
HashMap<String, List<Link>>
或使用guava库:
ListMultimap<String, Link>