Package org.eclipse.mat.collect
Class ArrayLongCompressed
java.lang.Object
org.eclipse.mat.collect.ArrayLongCompressed
This class compresses fixed-size long[] in a very fast and memory efficient
manner if many leading and/or trailing bits of the stored longs are not used
commonly. The internal data is never copied during the process of retrieving
or reconstructing objects of this class and allows for fast I/O writing and
reading of the underlying byte[]. Furthermore alomst no additinal data is
used beside the underlying byte[]. Thereby the memory consumption of this
data structure is kept at a minmum to build efficient long[] caches.
-
Constructor Summary
ConstructorDescriptionArrayLongCompressed
(byte[] bytes) CreateLongArrayCompressed
from bytes formerly got fromtoByteArray()
.ArrayLongCompressed
(int size, int leadingClearBits, int trailingClearBits) CreateLongArrayCompressed
from number of longs to be stored, the number of leading and trailing clear bits.ArrayLongCompressed
(long[] longs) CreateLongArrayCompressed
from longs representing the data to be stored in compressed form.ArrayLongCompressed
(long[] longs, int offset, int length) CreateLongArrayCompressed
from longs representing the data to be stored in compressed form (from offset to offset+length). -
Method Summary
-
Constructor Details
-
ArrayLongCompressed
public ArrayLongCompressed(byte[] bytes) CreateLongArrayCompressed
from bytes formerly got fromtoByteArray()
.- Parameters:
bytes
- bytes formerly got fromtoByteArray()
-
ArrayLongCompressed
public ArrayLongCompressed(int size, int leadingClearBits, int trailingClearBits) CreateLongArrayCompressed
from number of longs to be stored, the number of leading and trailing clear bits. Everything else is stored in the internal data structure.- Parameters:
size
- number of longs to be storedleadingClearBits
- number of leading clear bitstrailingClearBits
- number of trailing clear bits
-
ArrayLongCompressed
public ArrayLongCompressed(long[] longs) CreateLongArrayCompressed
from longs representing the data to be stored in compressed form.- Parameters:
longs
- longs representing the data to be stored in compressed form
-
ArrayLongCompressed
public ArrayLongCompressed(long[] longs, int offset, int length) CreateLongArrayCompressed
from longs representing the data to be stored in compressed form (from offset to offset+length).- Parameters:
longs
- longs representing the data to be stored in compressed formoffset
- offset from which on to compress the longslength
- number of longs to compress from the given array
-
-
Method Details
-
set
public void set(int index, long value) Set value at the given index.- Parameters:
index
- index at which the value should be setvalue
- value to be set at the given index
-
get
public long get(int index) Get value from the given index.- Parameters:
index
- index at which the value should be set- Returns:
- value found at the given index
-
toByteArray
public byte[] toByteArray()Get bytes representing the internal data structure with which anLongArrayCompressed
can be reconstructed.- Returns:
- bytes representing the internal data structure with which an
LongArrayCompressed
can be reconstructed
-