org.eclipse.mat.collect

## Class ArrayIntCompressed

- java.lang.Object
- - org.eclipse.mat.collect.ArrayIntCompressed

    public class ArrayIntCompressed
    extends Object

This class compresses fixed-size int[] in a very fast and memory efficient manner if many leading and/or trailing bits of the stored ints 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 almost no additional data is used beside the underlying byte[]. Thereby the memory consumption of this data structure is kept at a minimum to build efficient int[] caches.

### Constructor Summary

Constructors
Constructor and Description
`ArrayIntCompressed(byte[] bytes)` Create `IntArrayCompressed` from bytes formerly got from `toByteArray()`.
`ArrayIntCompressed(int[] ints)` Create `IntArrayCompressed` from ints representing the data to be stored in compressed form.
`ArrayIntCompressed(int[] ints, int offset, int length)` Create `IntArrayCompressed` from ints representing the data to be stored in compressed form (from offset to offset+length).
`ArrayIntCompressed(int size, int leadingClearBits, int trailingClearBits)` Create `IntArrayCompressed` from number of ints to be stored, the number of leading and trailing clear bits.

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `get(int index)` Get value from the given index.
`void` `set(int index, int value)` Set value at the given index.
`byte[]` `toByteArray()` Get bytes representing the internal data structure with which an `IntArrayCompressed` can be reconstructed.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ArrayIntCompressed

    public ArrayIntCompressed(byte[] bytes)

Create `IntArrayCompressed` from bytes formerly got from `toByteArray()`.

Parameters:
  `bytes` - bytes formerly got from `toByteArray()`

#### ArrayIntCompressed

    public ArrayIntCompressed(int size,
                              int leadingClearBits,
                              int trailingClearBits)

Create `IntArrayCompressed` from number of ints to be stored, the number of leading and trailing clear bits. Everything else is stored in the internal data structure.

Parameters:
  `size` - number of ints to be stored
  `leadingClearBits` - number of leading clear bits
  `trailingClearBits` - number of trailing clear bits

#### ArrayIntCompressed

    public ArrayIntCompressed(int[] ints)

Create `IntArrayCompressed` from ints representing the data to be stored in compressed form.

Parameters:
  `ints` - ints representing the data to be stored in compressed form

#### ArrayIntCompressed

    public ArrayIntCompressed(int[] ints,
                              int offset,
                              int length)

Create `IntArrayCompressed` from ints representing the data to be stored in compressed form (from offset to offset+length).

Parameters:
  `ints` - ints representing the data to be stored in compressed form
  `offset` - offset from which on to compress the ints
  `length` - number of ints to compress from the given array

### Method Detail

#### set

    public void set(int index,
                    int value)

Set value at the given index.

Parameters:
  `index` - index at which the value should be set
  `value` - value to be set at the given index

#### get

    public int 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 an `IntArrayCompressed` can be reconstructed.

Returns:
  bytes representing the internal data structure with which an `IntArrayCompressed` can be reconstructed