hg: lambda/lambda/jdk: Add BitSet.stream()
Brian Goetz
brian.goetz at oracle.com
Fri Dec 28 11:07:58 PST 2012
True. The original was based on one where we wanted to deferred binding
to the state of the BitSet until the user actually wanted data. Now we
accomplish that through the indirection () -> spliterator, so we can
back that out.
On 12/28/2012 1:43 PM, Remi Forax wrote:
> On 12/28/2012 07:25 PM, brian.goetz at oracle.com wrote:
>> Changeset: 606aa9a80b6d
>> Author: briangoetz
>> Date: 2012-12-28 13:25 -0500
>> URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/606aa9a80b6d
>>
>> Add BitSet.stream()
>>
>> ! src/share/classes/java/util/Arrays.java
>> ! src/share/classes/java/util/BitSet.java
>> ! src/share/classes/java/util/stream/reduce/Reducers.java
>> + test-ng/tests/org/openjdk/tests/java/util/BitsetStreamTest.java
>>
>>
>
> There is an easier implementation of BitSetIterator because nextSetBit
> has no side effect.
>
> class BitSetIterator implements PrimitiveIterator.OfInt {
> private int next = nextSetBit(0);
>
> @Override
> public boolean hasNext() {
> return next != -1;
> }
>
> @Override
> public int nextInt() {
> int index = next;
> if (index == -1) {
> throw new NoSuchElementException();
> }
> next = nextSetBit(index + 1);
> return index;
> }
> }
>
> cheers,
> Rémi
>
>
More information about the lambda-dev
mailing list