RFR 8132964 Spliterator documentation on Priority(Blocking)Queue
Chris Hegarty
chris.hegarty at oracle.com
Mon Nov 21 21:25:17 UTC 2016
> On 21 Nov 2016, at 20:57, Martin Buchholz <martinrb at google.com> wrote:
>
> Looks good to me!
+1
-Chris.
> On Mon, Nov 21, 2016 at 12:52 PM, Paul Sandoz <paul.sandoz at oracle.com>
> wrote:
>
>> Hi,
>>
>> Please review specification clarifications to PriorityQueue and
>> PriorityBlockingQueue for the spliterator. Ordinarily i would not specify
>> what spliterator characteristics are not reported, but in this case given
>> what is said about iterator I think it reasonable to say it about
>> spliterator (a number of developers have got caught out regarding order, or
>> lack thereof in this case, but i also suspect they never read the
>> specification!)
>>
>> Paul.
>>
>> diff -r eb147f1f232d src/java.base/share/classes/
>> java/util/PriorityQueue.java
>> --- a/src/java.base/share/classes/java/util/PriorityQueue.java Mon Nov
>> 21 12:00:46 2016 -0800
>> +++ b/src/java.base/share/classes/java/util/PriorityQueue.java Mon Nov
>> 21 12:30:33 2016 -0800
>> @@ -54,7 +54,8 @@
>> * <p>This class and its iterator implement all of the
>> * <em>optional</em> methods of the {@link Collection} and {@link
>> * Iterator} interfaces. The Iterator provided in method {@link
>> - * #iterator()} is <em>not</em> guaranteed to traverse the elements of
>> + * #iterator()} and the Spliterator provided in method {@link
>> #spliterator()}
>> + * are <em>not</em> guaranteed to traverse the elements of
>> * the priority queue in any particular order. If you need ordered
>> * traversal, consider using {@code Arrays.sort(pq.toArray())}.
>> *
>> @@ -799,7 +800,8 @@
>> /**
>> * Creates a <em><a href="Spliterator.html#
>> binding">late-binding</a></em>
>> * and <em>fail-fast</em> {@link Spliterator} over the elements in
>> this
>> - * queue.
>> + * queue. The spliterator does not traverse elements in any
>> particular order
>> + * (the {@link Spliterator#ORDERED ORDERED} characteristic is not
>> reported).
>> *
>> * <p>The {@code Spliterator} reports {@link Spliterator#SIZED},
>> * {@link Spliterator#SUBSIZED}, and {@link Spliterator#NONNULL}.
>> diff -r eb147f1f232d src/java.base/share/classes/java/util/concurrent/
>> PriorityBlockingQueue.java
>> --- a/src/java.base/share/classes/java/util/concurrent/PriorityBlockingQueue.java
>> Mon Nov 21 12:00:46 2016 -0800
>> +++ b/src/java.base/share/classes/java/util/concurrent/PriorityBlockingQueue.java
>> Mon Nov 21 12:30:33 2016 -0800
>> @@ -65,7 +65,8 @@
>> * <p>This class and its iterator implement all of the
>> * <em>optional</em> methods of the {@link Collection} and {@link
>> * Iterator} interfaces. The Iterator provided in method {@link
>> - * #iterator()} is <em>not</em> guaranteed to traverse the elements of
>> + * #iterator()} and the Spliterator provided in method {@link
>> #spliterator()}
>> + * are is <em>not</em> guaranteed to traverse the elements of
>> * the PriorityBlockingQueue in any particular order. If you need
>> * ordered traversal, consider using
>> * {@code Arrays.sort(pq.toArray())}. Also, method {@code drainTo}
>> @@ -994,6 +995,8 @@
>>
>> /**
>> * Returns a {@link Spliterator} over the elements in this queue.
>> + * The spliterator does not traverse elements in any particular order
>> + * (the {@link Spliterator#ORDERED ORDERED} characteristic is not
>> reported).
>> *
>> * <p>The returned spliterator is
>> * <a href="package-summary.html#Weakly"><i>weakly
>> consistent</i></a>.
>>
>>
More information about the core-libs-dev
mailing list