播放框架如何使用有序索引进行迭代

时间:2015-04-28 07:40:26

标签: scala playframework

我正在使用Play框架2.3.8,我需要在模板中迭代一个java HashMap:

 @(city: String, intents: java.util.Map[Intent, TimeTable.Row], lang: Lang)

@for((item, index) <- intents.entrySet.zipWithIndex) {
            <li>Item @index </li>
        }

现在的问题是我得到的索引如下:

项目7 项目17 项目22 项目8 项目28 第23项 项目33 项目18 第5项 第25项 项目11 第16项

如何获得有序索引以及为什么这里的列表无序?

2 个答案:

答案 0 :(得分:1)

澄清Carlos's comment

你可以使用隐式scala来实现java转换:

@import scala.collection.JavaConversions._

@(city: String, intents: java.util.Map[Intent, TimeTable.Row], lang: Lang)

@for(((intent,row), index) <- intents.toList.zipWithIndex) {
    <li>Item @index : <strong>@intent</strong> <i>row</i></li>
}

答案 1 :(得分:0)

我建议您使用SortedMap,最好不要将HashMap转换为模板内的其他内容,但从一开始就使用SortedMap。