## 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
`IntegerMap()`

Method Summary
`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.