org.apache.lucene.facet.collections

## Class IntToIntMap

- java.lang.Object
- - org.apache.lucene.facet.collections.IntToIntMap

    public class IntToIntMap
    extends Object

An Array-based hashtable which maps primitive int to primitive int.
The hashtable is constracted with a given capacity, or 16 as a default. In case there's not enough room for new pairs, the hashtable grows.
Capacity is adjusted to a power of 2, and there are 2 * capacity entries for the hash. The pre allocated arrays (for keys, values) are at length of capacity + 1, when index 0 is used as 'Ground' or 'NULL'.
The arrays are allocated ahead of hash operations, and form an 'empty space' list, to which the key,value pair is allocated.

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Field Summary

Fields
`static int` `GROUD`

### Constructor Summary

Constructors
Constructor and Description
`IntToIntMap()` Constructs a map with default capacity.
`IntToIntMap(int capacity)` Constructs a map with given capacity.

### Method Summary

Methods
`protected int` `calcBaseHashIndex(int key)` Calculating the baseHash index using the internal `hashFactor`.
`void` `clear()` Empties the map.
`boolean` `containsKey(int key)` Checks if a given key exists in the map.
`boolean` `containsValue(int v)` Checks if the given object exists in the map. This method iterates over the collection, trying to find an equal object.
`boolean` `equals(Object o)`
`protected int` `find(int key)` Find the actual index of a given key.
`int` `get(int key)` Returns the object mapped with the given key.
`protected void` `grow()` Grows the map.
`int` `hashCode()`
`boolean` `isEmpty()`
`IntIterator` `iterator()` Returns a new iterator for the mapped objects.
`IntIterator` `keyIterator()` Returns an iterator on the map keys.
`int` `put(int key, int e)` Inserts the <key,value> pair into the map.
`int` `remove(int key)` Removes a <key,value> pair from the map and returns the mapped value, or 0 if the none existed.
`int` `size()`
`int[]` `toArray()` Translates the mapped pairs' values into an array of Objects
`int[]` `toArray(int[] a)` Translates the mapped pairs' values into an array of ints
`String` `toString()`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### GROUD

    public static final int GROUD

See Also:
  Constant Field Values

### Constructor Detail

#### IntToIntMap

    public IntToIntMap()

Constructs a map with default capacity.

#### IntToIntMap

    public IntToIntMap(int capacity)

Constructs a map with given capacity. Capacity is adjusted to a native power of 2, with minimum of 16.

Parameters:
  `capacity` - minimum capacity for the map.

### Method Detail

#### calcBaseHashIndex

    protected int calcBaseHashIndex(int key)

Calculating the baseHash index using the internal `hashFactor`.

#### clear

    public void clear()

Empties the map. Generates the "Empty" space list for later allocation.

#### containsKey

    public boolean containsKey(int key)

Checks if a given key exists in the map.

Parameters:
  `key` - that is checked against the map data.
Returns:
  true if the key exists in the map. false otherwise.

#### containsValue

    public boolean containsValue(int v)

Checks if the given object exists in the map.
This method iterates over the collection, trying to find an equal object.

Parameters:
  `v` - value that is checked against the map data.
Returns:
  true if the value exists in the map (in .equals() meaning). false otherwise.

#### find

    protected int find(int key)

Find the actual index of a given key.

Returns:
  index of the key. zero if the key wasn't found.

#### get

    public int get(int key)

Returns the object mapped with the given key.

Parameters:
  `key` - int who's mapped object we're interested in.
Returns:
  an object mapped by the given key. null if the key wasn't found.

#### grow

    protected void grow()

Grows the map. Allocates a new map of double the capacity, and fast-insert the old key-value pairs.

#### isEmpty

    public boolean isEmpty()

Returns:
  true if the map is empty. false otherwise.

#### iterator

    public IntIterator iterator()

Returns a new iterator for the mapped objects.

#### keyIterator

    public IntIterator keyIterator()

Returns an iterator on the map keys.

#### put

    public int put(int key,
          int e)

Inserts the <key,value> pair into the map. If the key already exists, this method updates the mapped value to the given one, returning the old mapped value.

Returns:
  the old mapped value, or 0 if the key didn't exist.

#### remove

    public int remove(int key)

Removes a <key,value> pair from the map and returns the mapped value, or 0 if the none existed.

Parameters:
  `key` - used to find the value to remove
Returns:
  the removed value or 0 if none existed.

#### size

    public int size()

Returns:
  number of pairs currently in the map

#### toArray

    public int[] toArray()

Translates the mapped pairs' values into an array of Objects

Returns:
  an object array of all the values currently in the map.

#### toArray

    public int[] toArray(int[] a)

Translates the mapped pairs' values into an array of ints

Parameters:
  `a` - the array into which the elements of the map are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.
Returns:
  an array containing the values stored in the map

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### equals

    public boolean equals(Object o)

Overrides:
  `equals` in class `Object`