@Test public void testTrim() { Roaring64Bitmap map = newDefaultCtor(); int enableTrim = 100; long from = RoaringIntPacking.pack(0, -1 - enableTrim); long to = from + 2 * enableTrim; assertNotEquals(RoaringIntPacking.high(to), RoaringIntPacking.high(from)); for (long i = from; i <= to; i++) { map.addLong(i); } map.trim(); }
@Override public void trim() { if (highLowContainer.isEmpty()) { return; } KeyIterator keyIterator = highLowContainer.highKeyIterator(); while (keyIterator.hasNext()) { long containerIdx = keyIterator.currentContainerIdx(); Container container = highLowContainer.getContainer(containerIdx); if (container.isEmpty()) { keyIterator.remove(); } else { container.trim(); } } }
Roaring64Bitmap implements Externalizable, LongBitmapDataProvider { @Override public void trim() { if (highLowContainer.isEmpty()) { return; } KeyIterator keyIterator = highLowContainer.highKeyIterator(); while (keyIterator.hasNext()) { long containerIdx = keyIterator.currentContainerIdx(); Container container = highLowContainer.getContainer(containerIdx); if (container.isEmpty()) { keyIterator.remove(); } else { container.trim(); } } } }
Roaring64Bitmap implements Externalizable, LongBitmapDataProvider { @Override public void trim() { if (highLowContainer.isEmpty()) { return; } KeyIterator keyIterator = highLowContainer.highKeyIterator(); while (keyIterator.hasNext()) { long containerIdx = keyIterator.currentContainerIdx(); Container container = highLowContainer.getContainer(containerIdx); if (container.isEmpty()) { keyIterator.remove(); } else { container.trim(); } } } Roaring64Bitmap(); }
Roaring64Bitmap implements Externalizable, LongBitmapDataProvider { @Override public void trim() { if (highLowContainer.isEmpty()) { return; } KeyIterator keyIterator = highLowContainer.highKeyIterator(); while (keyIterator.hasNext()) { long containerIdx = keyIterator.currentContainerIdx(); Container container = highLowContainer.getContainer(containerIdx); if (container.isEmpty()) { keyIterator.remove(); } else { container.trim(); } } } 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 void trim() { if (highLowContainer.isEmpty()) { return; } KeyIterator keyIterator = highLowContainer.highKeyIterator(); while (keyIterator.hasNext()) { long containerIdx = keyIterator.currentContainerIdx(); Container container = highLowContainer.getContainer(containerIdx); if (container.isEmpty()) { keyIterator.remove(); } else { container.trim(); } } } 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();  }