Setの値をzipWithIndexでループする際の注意

scala templateでループを行う際にインデックスを付加する方法としてzipWithIndexがあるが、ループ対象がSetの場合、インデックスの順番がめちゃくちゃになってしまう。具体的には以下のようなパターン。

@for((data, i) <- dataSet.zipWithIndex){
    @i : @data
}

これを防ぐには、iteratorを使用すれば良い。

@for((data, i) <- dataSet.iterator.zipWithIndex){
    @i : @data
}