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