@Test public void testSelectEmpty() { assertThrows(IllegalArgumentException.class, () -> { Roaring64Bitmap map = newDefaultCtor(); map.select(0); }); }
@Override public long select(final long j) throws IllegalArgumentException { long left = j; LeafNodeIterator leafNodeIterator = highLowContainer.highKeyLeafNodeIterator(false); while (leafNodeIterator.hasNext()) { LeafNode leafNode = leafNodeIterator.next(); long containerIdx = leafNode.getContainerIdx(); Container container = highLowContainer.getContainer(containerIdx); int card = container.getCardinality(); if (left >= card) { left = left - card; } else { byte[] high = leafNode.getKeyBytes(); int leftAsUnsignedInt = (int) left; char low = container.select(leftAsUnsignedInt); return LongUtils.toLong(high, low); } } return throwSelectInvalidIndex(j); }
Roaring64Bitmap implements Externalizable, LongBitmapDataProvider { @Override public long select(final long j) throws IllegalArgumentException { long left = j; LeafNodeIterator leafNodeIterator = highLowContainer.highKeyLeafNodeIterator(false); while (leafNodeIterator.hasNext()) { LeafNode leafNode = leafNodeIterator.next(); long containerIdx = leafNode.getContainerIdx(); Container container = highLowContainer.getContainer(containerIdx); int card = container.getCardinality(); if (left >= card) { left = left - card; } else { byte[] high = leafNode.getKeyBytes(); int leftAsUnsignedInt = (int) left; char low = container.select(leftAsUnsignedInt); return LongUtils.toLong(high, low); } } return throwSelectInvalidIndex(j); } }
Roaring64Bitmap implements Externalizable, LongBitmapDataProvider { @Override public long select(final long j) throws IllegalArgumentException { long left = j; LeafNodeIterator leafNodeIterator = highLowContainer.highKeyLeafNodeIterator(false); while (leafNodeIterator.hasNext()) { LeafNode leafNode = leafNodeIterator.next(); long containerIdx = leafNode.getContainerIdx(); Container container = highLowContainer.getContainer(containerIdx); int card = container.getCardinality(); if (left >= card) { left = left - card; } else { byte[] high = leafNode.getKeyBytes(); int leftAsUnsignedInt = (int) left; char low = container.select(leftAsUnsignedInt); return LongUtils.toLong(high, low); } } return throwSelectInvalidIndex(j); } Roaring64Bitmap(); }
Roaring64Bitmap implements Externalizable, LongBitmapDataProvider { @Override public long select(final long j) throws IllegalArgumentException { long left = j; LeafNodeIterator leafNodeIterator = highLowContainer.highKeyLeafNodeIterator(false); while (leafNodeIterator.hasNext()) { LeafNode leafNode = leafNodeIterator.next(); long containerIdx = leafNode.getContainerIdx(); Container container = highLowContainer.getContainer(containerIdx); int card = container.getCardinality(); if (left >= card) { left = left - card; } else { byte[] high = leafNode.getKeyBytes(); int leftAsUnsignedInt = (int) left; char low = container.select(leftAsUnsignedInt); return LongUtils.toLong(high, low); } } return throwSelectInvalidIndex(j); } Roaring64Bitmap(); void addInt(int x); @Override void addLong(long x); @Override long getLongCardinality(); int getIntCardinality(); @Override long select(final long j); Iterator<Long> iterator(); @Override void forEach(final LongConsumer lc); @Override long rankLong(long id); void or(final Roaring64Bitmap x2); void xor(final Roaring64Bitmap x2); void and(final Roaring64Bitmap x2); void andNot(final Roaring64Bitmap x2); @Override void writeExternal(ObjectOutput out); @Override void readExternal(ObjectInput in); @Override String toString(); @Override LongIterator getLongIterator(); @Override boolean contains(long x); @Override int getSizeInBytes(); @Override long getLongSizeInBytes(); @Override boolean isEmpty(); @Override ImmutableLongBitmapDataProvider limit(long x); boolean runOptimize(); @Override void serialize(DataOutput out); void serialize(ByteBuffer byteBuffer); void deserialize(DataInput in); void deserialize(ByteBuffer in); @Override long serializedSizeInBytes(); void clear(); @Override long[] toArray(); static Roaring64Bitmap bitmapOf(final long... dat); void add(long... dat); void add(final long rangeStart, final long rangeEnd); @Override LongIterator getReverseLongIterator(); @Override void removeLong(long x); @Override void trim(); @Override int hashCode(); @Override boolean equals(Object obj); void flip(final long x); @Override Roaring64Bitmap clone(); }
Roaring64Bitmap implements Externalizable, LongBitmapDataProvider { @Override public long select(final long j) throws IllegalArgumentException { long left = j; LeafNodeIterator leafNodeIterator = highLowContainer.highKeyLeafNodeIterator(false); while (leafNodeIterator.hasNext()) { LeafNode leafNode = leafNodeIterator.next(); long containerIdx = leafNode.getContainerIdx(); Container container = highLowContainer.getContainer(containerIdx); int card = container.getCardinality(); if (left >= card) { left = left - card; } else { byte[] high = leafNode.getKeyBytes(); int leftAsUnsignedInt = (int) left; char low = container.select(leftAsUnsignedInt); return LongUtils.toLong(high, low); } } return throwSelectInvalidIndex(j); } Roaring64Bitmap(); void addInt(int x); @Override void addLong(long x); @Override long getLongCardinality(); int getIntCardinality(); @Override long select(final long j); Iterator<Long> iterator(); @Override void forEach(final LongConsumer lc); @Override long rankLong(long id); void or(final Roaring64Bitmap x2); void xor(final Roaring64Bitmap x2); void and(final Roaring64Bitmap x2); void andNot(final Roaring64Bitmap x2); @Override void writeExternal(ObjectOutput out); @Override void readExternal(ObjectInput in); @Override String toString(); @Override LongIterator getLongIterator(); @Override boolean contains(long x); @Override int getSizeInBytes(); @Override long getLongSizeInBytes(); @Override boolean isEmpty(); @Override ImmutableLongBitmapDataProvider limit(long x); boolean runOptimize(); @Override void serialize(DataOutput out); void serialize(ByteBuffer byteBuffer); void deserialize(DataInput in); void deserialize(ByteBuffer in); @Override long serializedSizeInBytes(); void clear(); @Override long[] toArray(); static Roaring64Bitmap bitmapOf(final long... dat); void add(long... dat); void add(final long rangeStart, final long rangeEnd); @Override LongIterator getReverseLongIterator(); @Override void removeLong(long x); @Override void trim(); @Override int hashCode(); @Override boolean equals(Object obj); void flip(final long x); @Override Roaring64Bitmap clone();  }