Package org.neo4j.gds.core.utils.paged
Class HugeArray<Array,Box,Self extends HugeArray<Array,Box,Self>>
- java.lang.Object
-
- org.neo4j.gds.core.utils.paged.HugeArray<Array,Box,Self>
-
- All Implemented Interfaces:
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 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 fromsource
into this array, starting fromsliceStart
up untilsliceEnd
.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.core.utils.paged.HugeCursorSupport
initCursor, initCursor, newCursor
-
-
-
-
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 toArrays.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 interfaceHugeCursorSupport<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 throwNullPointerException
s 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
-
asNodeProperties
public abstract NodePropertyValues asNodeProperties()
-
copyFromArrayIntoSlice
public final int copyFromArrayIntoSlice(Array source, long sliceStart, long sliceEnd)
Copies data fromsource
into this array, starting fromsliceStart
up untilsliceEnd
.- Returns:
- the number of entries copied
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-