From 5aeca8a716c2ef31f2e73d0bb3f1767b64a8708b Mon Sep 17 00:00:00 2001 From: Aleksandar Pokopec Date: Wed, 28 Jul 2010 14:49:28 +0000 Subject: Fixes a priority queue issue. No review. --- src/library/scala/collection/mutable/PriorityQueue.scala | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/library/scala/collection/mutable/PriorityQueue.scala b/src/library/scala/collection/mutable/PriorityQueue.scala index b1ca5fde3c..397fc5e30b 100644 --- a/src/library/scala/collection/mutable/PriorityQueue.scala +++ b/src/library/scala/collection/mutable/PriorityQueue.scala @@ -59,8 +59,16 @@ class PriorityQueue[A](implicit ord: Ordering[A]) override def isEmpty: Boolean = resarr.p_size0 < 2 override def repr = this - // hey foreach, our 0th element doesn't exist - override def foreach[U](f: A => U) { + /** A version of `foreach` that traverses elements in an unspecified order. + * + * This method is faster than `foreach` as it does not copy the heap to + * traverse it. + * + * @tparam U the return type of `f` + * @param f the function to be applied at each element, return value ignored + */ + def foreachUnordered[U](f: A => U) { + // hey foreach, our 0th element doesn't exist var i = 1 while (i < resarr.p_size0) { f(toA(resarr.p_array(i))) @@ -285,4 +293,4 @@ class PriorityQueue[A](implicit ord: Ordering[A]) // def empty[A](implicit ord: Ordering[A]): PriorityQueue[A] = new PriorityQueue[A](ord) // implicit def canBuildFrom[A](implicit ord: Ordering[A]): CanBuildFrom[Coll, A, PriorityQueue] = // } -// \ No newline at end of file +// -- cgit v1.2.3