按索引选择TreeMap的键

时间:2011-07-19 07:35:09

标签: scala scala-collections

想象一下,您有以下TreeMap:

var dates = new TreeMap[Long, Tuple2[Int, Double]]()

我知道我可以通过以下方式循环播放:

dates.foreach { case (date, (id, rotation)) => 
   ...          
}

但是在我的代码中,这个循环发生在另一个循环中,因此我希望自己进入日期键,通常使用currIndex : Int变量,我将根据条件递增。

我认为可以做类似的事情:

date = dates.keys(currIndex)

但看起来这不可能......任何想法怎么做?

1 个答案:

答案 0 :(得分:3)

修改:尝试解决您的评论:

您可以事先将整个密钥转换为IndexedSeq

val keysSeq = dates.keySet.toIndexedSeq

// later, obtain an index
val index: Int = /* ... */
// lookup the key
val (valueInt, valueDouble) = dates(keysSeq(index))

上一个回答

您可以尝试这样的事情:

dates.iterator.zipWithIndex.foreach {
  case ((key, (valueInt, valueDouble)), index) =>

}

这对你有用吗?我不确定我是否正确理解你根据条件“增加[ing currIndex]”的要求......