2013-04-17 66 views
0

我是新來的Java和我有一個問題,我無法弄清楚如何解決。 我有一個看起來像這樣一個現有的HashMap:如何創建混合類型的嵌套hashmaps?

[ 
{ 
    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變成東西,讓我做這件事的鬍子:

<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

你有地圖在每個條目中結合了三個元素?通常地圖是key = value結構,不是嗎? – Vitaly

+0

你是對的,很好的觀察。該對象實際上是一個List,創建如下:'List > linksList = new ArrayList >();' – Fernando

回答

1

假設你創建一個這樣的類:

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

你所描述的結構可以用做:

HashMap<String, List<Link>> 

或使用番石榴庫:

ListMultimap<String, Link>