2014-08-27 31 views
1

我有一個來自com.google.common.collect.Multimap的Multimap對象。我如何在我的Play scala模板中遍歷這個Multimap?用谷歌Multimap播放scala模板

@if(!googleMultimapObject.isEmpty()){

爲...

}

感謝。在您的模板的頂部

回答

2

首次進口JavaConverters(即第二行,不簽名)

@import scala.collection.JavaConverters._ 

這將提供asScala方法,你的Java集合。通過一個隱含的。

現在你可以這樣做:

@for(entry <- googleMultimapObject.entries.asScala) { 
    <p>@entry.getKey()</p> 
    <p>@entry.getValue()</p> 
} 

另外,要列出每個鍵的值,你可以這樣做:

@for((key, values) <- googleMultimapObject.asMap.asScala) { 
    <p>key: @key</p> 
    <p> 
    @for (value <- values.asScala) { 
    <span>@value</span> 
    } 
    </p> 
} 

有一個快捷方式在這裏發生的解壓項和值:.asMap.asScala給了我們一個scala地圖。當你迭代一個Scala地圖時,你得到(KeyType, ValueType)的元組。上面的語法將元組解開爲(key, values)

+0

感謝您的幫助 – iCode 2014-08-27 13:08:50

+0

我該怎麼做,如果我想先迭代鍵和下一個像Java這樣的值:for(Map.Entry > entry :listOfJobByModel.asMap()。entrySet()) {Collection jCollection = entry.getValue(); } – iCode 2014-08-27 13:24:31

+0

@ user3669225我更新了我的答案 - 這是你的想法? (順便說一下,你應該刪除你的答案,最好在評論中要求澄清。歡迎來到Stack Overflow!) – 2014-08-27 14:18:01