ScalaのPriorityQueue

 
Scala 2.9.1.
 

object Main {
  type Pair = (Int, Int)
  // Comparing the second element of 2-tuple
  object MyTupleOrdering extends Ordering[Pair] {
    def compare(a: Pair, b: Pair) = - (a._2 compare b._2)
  }
  def main(args: Array[String]) = {
    import scala.collection.mutable.PriorityQueue

    val pq = PriorityQueue[Pair]()(MyTupleOrdering)
    val _list = List[Pair]( (1, 2), (2, 1), (3, 5), (5, 7) )
    for (v < - _list) pq += v

    while (!pq.isEmpty) {
      val top = pq.dequeue
      println("->(%d,%d)".format(top._1, top._2))
    }
  }
}


 
出力
cocomoff[10:20午前]% scala Sample.scala 
->(2,1)
->(1,2)
->(3,5)
->(5,7)


 
何をやろうとしてたんだっけ?
 

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です