From e8e504c0f27d3d594625c9101e5f4fab9b38865e Mon Sep 17 00:00:00 2001 From: Aleksandar Pokopec Date: Sun, 22 Nov 2009 22:47:08 +0000 Subject: Priority queue reverse is undefined - overriden... Priority queue reverse is undefined - overriden to throw an exception. Reverse iterator seems to have sense - it is overriden and is defined, and some methods in SeqLike are implemented in terms of it. --- src/library/scala/collection/mutable/PriorityQueue.scala | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/library/scala/collection/mutable/PriorityQueue.scala b/src/library/scala/collection/mutable/PriorityQueue.scala index d6b5d12749..54505dbdf6 100644 --- a/src/library/scala/collection/mutable/PriorityQueue.scala +++ b/src/library/scala/collection/mutable/PriorityQueue.scala @@ -202,6 +202,20 @@ class PriorityQueue[A](implicit ord: Ordering[A]) } } + override def reverse = throw new UnsupportedOperationException("Priority queue cannot be reversed.") + + override def reverseIterator = new Iterator[A] { + val arr = new Array[Any](size) + iterator.copyToArray(arr) + var i = arr.size - 1 + def hasNext: Boolean = i >= 0 + def next(): A = { + val curr = arr(i) + i -= 1 + curr.asInstanceOf[A] + } + } + /** The hashCode method always yields an error, since it is not * safe to use mutable queues as keys in hash tables. * -- cgit v1.2.3