package com.carrotsearch.hppc;

Resizing (growth) strategy for array-backed buffers.
/** * Resizing (growth) strategy for array-backed buffers. */
public interface ArraySizingStrategy {
Params:
  • currentBufferLength – Current size of the array (buffer). This number should comply with the strategy's policies (it is a result of initial rounding or further growCalls). It can also be zero, indicating the growth from an empty buffer.
  • elementsCount – Number of elements stored in the buffer.
  • expectedAdditions – Expected number of additions (resize hint).
Throws:
  • BufferAllocationException – If the sizing strategy cannot grow the buffer (for example due to constraints or memory limits).
Returns:Must return a new size at least as big as to hold elementsCount + expectedAdditions.
/** * @param currentBufferLength * Current size of the array (buffer). This number should comply with * the strategy's policies (it is a result of initial rounding or * further growCalls). It can also be zero, indicating the growth * from an empty buffer. * * @param elementsCount * Number of elements stored in the buffer. * * @param expectedAdditions * Expected number of additions (resize hint). * * @return Must return a new size at least as big as to hold * <code>elementsCount + expectedAdditions</code>. * * @throws BufferAllocationException * If the sizing strategy cannot grow the buffer (for example due to * constraints or memory limits). */
int grow(int currentBufferLength, int elementsCount, int expectedAdditions) throws BufferAllocationException; }