0

我是 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
            }
        }
    }
]

但我可能是错的,并且会使对象过于复杂。

任何指针将不胜感激。

4

1 回答 1

2

假设您创建了一个这样的类:

class Link
{
    public String text;
    public String url;
}

您描述的结构可以使用:

HashMap<String, List<Link>>

或使用番石榴库:

ListMultimap<String, Link>
于 2013-04-17T21:06:19.197 回答