Class BigArrays

java.lang.Object
org.elasticsearch.common.util.BigArrays

public class BigArrays extends Object
Utility class to work with arrays.
  • Field Details

    • NON_RECYCLING_INSTANCE

      public static final BigArrays NON_RECYCLING_INSTANCE
  • Constructor Details

  • Method Details

    • overSize

      public static long overSize(long minTargetSize)
      Returns the next size to grow when working with parallel arrays that may have different page sizes or number of bytes per element.
    • overSize

      public static long overSize(long minTargetSize, int pageSize, int bytesPerElement)
      Return the next size to grow to that is >= minTargetSize. Inspired from ArrayUtil.oversize(int, int) and adapted to play nicely with paging.
    • withCircuitBreaking

      public BigArrays withCircuitBreaking()
      Return an instance of this BigArrays class with circuit breaking explicitly enabled, instead of only accounting enabled
    • withBreakerService

      public BigArrays withBreakerService(CircuitBreakerService breakerService)
      Creates a new BigArray pointing at the specified CircuitBreakerService. Use with PreallocatedCircuitBreakerService.
    • breakerService

      public CircuitBreakerService breakerService()
    • newByteArray

      public ByteArray newByteArray(long size, boolean clearOnResize)
      Allocate a new ByteArray.
      Parameters:
      size - the initial length of the array
      clearOnResize - whether values should be set to 0 on initialization and resize
    • newByteArray

      public ByteArray newByteArray(long size)
      Allocate a new ByteArray initialized with zeros.
      Parameters:
      size - the initial length of the array
    • resize

      public ByteArray resize(ByteArray array, long size)
      Resize the array to the exact provided size.
    • grow

      public ByteArray grow(ByteArray array, long minSize)
      Grow an array to a size that is larger than minSize, preserving content, and potentially reusing part of the provided array.
    • hashCode

      public int hashCode(ByteArray array)
      See Also:
      Arrays.hashCode(byte[])
    • equals

      public boolean equals(ByteArray array, ByteArray other)
      See Also:
      Arrays.equals(byte[], byte[])
    • newIntArray

      public IntArray newIntArray(long size, boolean clearOnResize)
      Allocate a new IntArray.
      Parameters:
      size - the initial length of the array
      clearOnResize - whether values should be set to 0 on initialization and resize
    • newIntArray

      public IntArray newIntArray(long size)
      Allocate a new IntArray.
      Parameters:
      size - the initial length of the array
    • resize

      public IntArray resize(IntArray array, long size)
      Resize the array to the exact provided size.
    • grow

      public IntArray grow(IntArray array, long minSize)
      Grow an array to a size that is larger than minSize, preserving content, and potentially reusing part of the provided array.
    • newLongArray

      public LongArray newLongArray(long size, boolean clearOnResize)
      Allocate a new LongArray.
      Parameters:
      size - the initial length of the array
      clearOnResize - whether values should be set to 0 on initialization and resize
    • newLongArray

      public LongArray newLongArray(long size)
      Allocate a new LongArray.
      Parameters:
      size - the initial length of the array
    • resize

      public LongArray resize(LongArray array, long size)
      Resize the array to the exact provided size.
    • grow

      public LongArray grow(LongArray array, long minSize)
      Grow an array to a size that is larger than minSize, preserving content, and potentially reusing part of the provided array.
    • newDoubleArray

      public DoubleArray newDoubleArray(long size, boolean clearOnResize)
      Allocate a new DoubleArray.
      Parameters:
      size - the initial length of the array
      clearOnResize - whether values should be set to 0 on initialization and resize
    • newDoubleArray

      public DoubleArray newDoubleArray(long size)
      Allocate a new DoubleArray of the given capacity.
    • resize

      public DoubleArray resize(DoubleArray array, long size)
      Resize the array to the exact provided size.
    • grow

      public DoubleArray grow(DoubleArray array, long minSize)
      Grow an array to a size that is larger than minSize, preserving content, and potentially reusing part of the provided array.
    • newFloatArray

      public FloatArray newFloatArray(long size, boolean clearOnResize)
      Allocate a new FloatArray.
      Parameters:
      size - the initial length of the array
      clearOnResize - whether values should be set to 0 on initialization and resize
    • newFloatArray

      public FloatArray newFloatArray(long size)
      Allocate a new FloatArray of the given capacity.
    • resize

      public FloatArray resize(FloatArray array, long size)
      Resize the array to the exact provided size.
    • grow

      public FloatArray grow(FloatArray array, long minSize)
      Grow an array to a size that is larger than minSize, preserving content, and potentially reusing part of the provided array.
    • newObjectArray

      public <T> ObjectArray<T> newObjectArray(long size)
      Allocate a new ObjectArray.
      Parameters:
      size - the initial length of the array
    • resize

      public <T> ObjectArray<T> resize(ObjectArray<T> array, long size)
      Resize the array to the exact provided size.
    • grow

      public <T> ObjectArray<T> grow(ObjectArray<T> array, long minSize)
      Grow an array to a size that is larger than minSize, preserving content, and potentially reusing part of the provided array.