hg: lambda/lambda/jdk: Add BitSet.stream()

Remi Forax forax at univ-mlv.fr
Fri Dec 28 10:43:26 PST 2012


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