優先順位付キュー
優先順位付キューを使おうとしたときにヘルプを見ても、使い方がよくわからなかったためメモ。*1
http://www.scala-lang.org/api/current/scala/collection/mutable/PriorityQueue.html
クラスはscala.collection.mutable.PriorityQueue
enqueueで要素を追加
scala> import scala.collection.mutable.PriorityQueue import scala.collection.mutable.PriorityQueue scala> val a = new PriorityQueue[Int]() a: scala.collection.mutable.PriorityQueue[Int] = PriorityQueue() scala> a.enqueue(1) scala> a.enqueue(2) scala> a.enqueue(10) scala> a res4: scala.collection.mutable.PriorityQueue[Int] = PriorityQueue(10, 2, 1)
dequeueで要素を取り出す
scala> a.dequeue res5: Int = 10 scala> a.dequeue res7: Int = 2 scala> a.dequeue res8: Int = 1
優先順位を変えるには、以下のようにnewの際に追加でOrdering型の引数を与える。
val b = new PriorityQueue[Int]()(scala.math.Ordering.Int.reverse)
*1:collection汎用のメソッドが多すぎて、enqueueとdequeueを見逃しただけなんですが