Class BigArrays

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

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

  • 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
    • 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.