Class IntHashMap<T>

java.lang.Object
org.jgroups.util.IntHashMap<T>

public class IntHashMap<T> extends Object
A hashmap where keys have to be ints. The size is fixed and keys/values are stored in a simple array, e.g. [K1,V1, K2,V2, ... Kn,Vn]. The keys are indices into the array.

Typically populated at startup and then used in read-only mode. This implementation is unsynchronized, and keys and values have to be non-null. Note that removals and changes (e.g. adding the same key twice) are unsupported.

Note that this class does not lend itself to be used as a sparse array, ie. adding keys [0 .. 100] and then 5000 would create an array of length 5001, and waste the space between index 100 and 5000. Ideally, keys start as 0, so adding keys [50..100] would also waste the space for 50 keys.

Since:
5.0.0
  • Field Details

    • table

      protected T[] table
    • size

      protected int size
  • Constructor Details

    • IntHashMap

      public IntHashMap(int highest_key)
      Creates an instance
      Parameters:
      highest_key - The key with the highest value. The underlying array will be sized as highest_key+1
  • Method Details

    • getCapacity

      public int getCapacity()
    • size

      public int size()
    • isEmpty

      public boolean isEmpty()
    • containsKey

      public boolean containsKey(int k)
    • get

      public T get(int k)
    • put

      public IntHashMap<T> put(int key, T value)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • checkCapacity

      protected IntHashMap<T> checkCapacity(int key)