net.sf.statcvs.util

## Class IntegerMap

- java.lang.Object
- - net.sf.statcvs.util.IntegerMap

-     public class IntegerMap
      extends java.lang.Object

  Utility class for storing a map from `Object`s to `int`s. This class makes it easy to sort by key or value, and provides useful features like `sum()`, `max()`, and percent calculation.

  The keys must be comparable, for example `String`s.

  Behaviour for `null` keys is unspecified.

  Version:
    $Id: IntegerMap.java,v 1.17 2009/08/20 17:44:05 benoitx Exp $
  Author:
    Richard Cyganiak

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IntegerMap()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addInt(java.lang.Object key, int addValue)` Adds an `int` to the value stored at a key.
    `double` | `average()` Returns the average of all values in the map.
    `boolean` | `contains(java.lang.Object key)` Returns `true` if the map contains a value for this key.
    `void` | `dec(java.lang.Object key)` Same as `addInt(key, -1)`
    `int` | `get(java.lang.Object key)` Gets a value from the map.
    `java.lang.Integer` | `getInteger(java.lang.Object key)` Same as `get(Object)`, but returns an `Integer`, not an `int`.
    `double` | `getPercent(java.lang.Object key)` Gets the value stored at a key as a percentage of all values in the map.
    `double` | `getPercentOfMaximum(java.lang.Object key)` Gets the value stored at a key as a percentage of the maximum value in the map.
    `void` | `inc(java.lang.Object key)` Same as `addInt(key, 1)`
    `java.util.Iterator` | `iteratorSortedByKey()` Returns an iterator on the keys, sorted by key ascending.
    `java.util.Iterator` | `iteratorSortedByValue()` Returns an iterator on the keys, sorted by values ascending.
    `java.util.Iterator` | `iteratorSortedByValueReverse()` Returns an iterator on the keys, sorted by values descending.
    `java.util.Set` | `keySet()` Returns a set view of the keys.
    `int` | `max()` Returns the maximum value in the map.
    `void` | `put(java.lang.Object key, int value)` Puts a value into the map, overwriting any previous value for the same key.
    `void` | `remove(java.lang.Object key)` Deletes a value from the map.
    `int` | `size()` Returns the number of key-value pairs stored in the map.
    `int` | `sum()` Returns the sum of all values in the map.

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

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

- - ### Constructor Detail

    - #### IntegerMap

          public IntegerMap()

  - ### Method Detail

    - #### put

          public void put(java.lang.Object key,
                 int value)

      Puts a value into the map, overwriting any previous value for the same key.
      Parameters:
        `key` - an `Object` which is used as key.
        `value` - the `int` value to be stored at this key.

    - #### get

          public int get(java.lang.Object key)

      Gets a value from the map. Returns the value which was stored in the map at the same key before. If no value was stored for this key, 0 will be returned.
      Parameters:
        `key` - an `Object` which is used as key.
      Returns:
        the value for this key

    - #### getInteger

          public java.lang.Integer getInteger(java.lang.Object key)

      Same as `get(Object)`, but returns an `Integer`, not an `int`.
      Parameters:
        `key` - the key to get the value for
      Returns:
        the value wrapped in an `Integer` object

    - #### getPercent

          public double getPercent(java.lang.Object key)

      Gets the value stored at a key as a percentage of all values in the map.
      Parameters:
        `key` - the key to get the value for
      Returns:
        the value as a percentage of the sum of all values

    - #### getPercentOfMaximum

          public double getPercentOfMaximum(java.lang.Object key)

      Gets the value stored at a key as a percentage of the maximum value in the map. For the maximum value, this will return 100.0. For a value half as large as the maximum value, this will return 50.0.
      Parameters:
        `key` - the key to get the value for
      Returns:
        the value as a percentage of largest value in the map

    - #### addInt

          public void addInt(java.lang.Object key,
                    int addValue)

      Adds an `int` to the value stored at a key. If no value was stored before at this key, the `int` will be stored there.
      Parameters:
        `key` - the key to whose value `addValue` should be added
        `addValue` - the `int` to be added

    - #### inc

          public void inc(java.lang.Object key)

      Same as `addInt(key, 1)`
      Parameters:
        `key` - the key whose value should be increased

    - #### dec

          public void dec(java.lang.Object key)

      Same as `addInt(key, -1)`
      Parameters:
        `key` - the key whose value should be decreased

    - #### remove

          public void remove(java.lang.Object key)

      Deletes a value from the map. This is different from `put(key, 0)`. Removing will reduce the size of the map, putting 0 will not.
      Parameters:
        `key` - the key that should be removed

    - #### contains

          public boolean contains(java.lang.Object key)

      Returns `true` if the map contains a value for this key.
      Parameters:
        `key` - the key to check for
      Returns:
        `true` if the key is in the map

    - #### size

          public int size()

      Returns the number of key-value pairs stored in the map.
      Returns:
        the number of key-value pairs stored in the map

    - #### keySet

          public java.util.Set keySet()

      Returns a set view of the keys. The set will be in ascending key order.
      Returns:
        a `Set` view of all keys

    - #### iteratorSortedByKey

          public java.util.Iterator iteratorSortedByKey()

      Returns an iterator on the keys, sorted by key ascending.
      Returns:
        an iterator on the keys

    - #### iteratorSortedByValue

          public java.util.Iterator iteratorSortedByValue()

      Returns an iterator on the keys, sorted by values ascending.
      Returns:
        an iterator on the keys

    - #### iteratorSortedByValueReverse

          public java.util.Iterator iteratorSortedByValueReverse()

      Returns an iterator on the keys, sorted by values descending.
      Returns:
        an iterator on the keys

    - #### sum

          public int sum()

      Returns the sum of all values in the map.
      Returns:
        the sum of all values in the map

    - #### average

          public double average()

      Returns the average of all values in the map.
      Returns:
        the average of all values in the map

    - #### max

          public int max()

      Returns the maximum value in the map.
      Returns:
        the maximum value in the map.