Class HugeArray<Array,​Box,​Self extends HugeArray<Array,​Box,​Self>>

  • All Implemented Interfaces:
    org.neo4j.gds.collections.cursor.HugeCursorSupport<Array>
    Direct Known Subclasses:
    HugeByteArray, HugeDoubleArray, HugeIntArray, HugeLongArray, HugeObjectArray

    public abstract class HugeArray<Array,​Box,​Self extends HugeArray<Array,​Box,​Self>>
    extends java.lang.Object
    implements org.neo4j.gds.collections.cursor.HugeCursorSupport<Array>
    • Constructor Summary

      Constructors 
      Constructor Description
      HugeArray()  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract NodePropertyValues asNodeProperties()  
      int copyFromArrayIntoSlice​(Array source, long sliceStart, long sliceEnd)
      Copies data from source into this array, starting from sliceStart up until sliceEnd.
      abstract Self copyOf​(long newLength)
      Creates a copy of the given array.
      abstract void copyTo​(Self dest, long length)
      Copies the content of this array into the target array.
      abstract long release()
      Destroys the data, allowing the underlying storage arrays to be collected as garbage.
      abstract long size()
      Returns the length of this array.
      abstract long sizeOf()  
      abstract Array toArray()  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.neo4j.gds.collections.cursor.HugeCursorSupport

        initCursor, initCursor, newCursor
    • Constructor Detail

      • HugeArray

        public HugeArray()
    • Method Detail

      • copyTo

        public abstract void copyTo​(Self dest,
                                    long length)
        Copies the content of this array into the target array.

        The behavior is identical to System.arraycopy(Object, int, Object, int, int).

      • copyOf

        public abstract Self copyOf​(long newLength)
        Creates a copy of the given array. The behavior is identical to Arrays.copyOf(int[], int).
      • size

        public abstract long size()
        Returns the length of this array.

        If the size is greater than zero, the highest supported index is size() - 1

        The behavior is identical to calling array.length on primitive arrays.

        Specified by:
        size in interface org.neo4j.gds.collections.cursor.HugeCursorSupport<Array>
      • sizeOf

        public abstract long sizeOf()
        Returns:
        the amount of memory used by the instance of this array, in bytes. This should be the same as returned from release() without actually releasing the array.
      • release

        public abstract long release()
        Destroys the data, allowing the underlying storage arrays to be collected as garbage. The array is unusable after calling this method and will throw NullPointerExceptions on virtually every method invocation.

        Note that the data might not immediately collectible if there are still cursors alive that reference this array. You have to HugeCursor.close() every cursor instance as well.

        Returns:
        the amount of memory freed, in bytes.
      • toArray

        public abstract Array toArray()
        Returns:
        the contents of this array as a flat java primitive array. The returned array might be shared and changes would then be reflected and visible in this array.
        Throws:
        java.lang.IllegalStateException - if the array is too large
      • copyFromArrayIntoSlice

        public final int copyFromArrayIntoSlice​(Array source,
                                                long sliceStart,
                                                long sliceEnd)
        Copies data from source into this array, starting from sliceStart up until sliceEnd.
        Returns:
        the number of entries copied
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object