Package ubic.basecode.dataStructure
Class CountingMap<K>
- java.lang.Object
-
- ubic.basecode.dataStructure.CountingMap<K>
-
- Type Parameters:
K
-
public class CountingMap<K> extends Object implements Map<K,Integer>
Convenience Map that has a count as the value for each key. Calling increment(K key) increases the count for key.This replaces the idiom of map.containsKey(k) ? map.put(k, map.get(k) + 1) : map.put(k, 0);
- Author:
- luke
-
-
Constructor Summary
Constructors Constructor Description CountingMap()
Constructs a CountingMap backed by a simple HashMap.CountingMap(Map<K,Integer> map)
Constructs a CountingMap backed by the specified Map.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
boolean
containsKey(Object key)
boolean
containsValue(Object value)
int
count(K key)
Returns the count associated with the specified key, or zero if the key has never been incremented.Set<Map.Entry<K,Integer>>
entrySet()
boolean
equals(Object o)
Integer
get(Object key)
int
hashCode()
int
increment(K key)
Increments the count associated with the specified key and returns the incremented count.void
incrementAll(Collection<K> keys)
Increments the count associated with the specified keys.boolean
isEmpty()
Set<K>
keySet()
int
max()
Integer
put(K key, Integer value)
void
putAll(Map<? extends K,? extends Integer> t)
Integer
remove(Object key)
boolean
seen(K key)
Returns true if the specified key has ever been incremented, false otherwise.int
size()
List<K>
sortedKeyList()
Returns a list of the keys in this map, sorted by ascending count.List<K>
sortedKeyList(boolean sortDescending)
Returns a list of the keys in this map, sorted as specified.String
toString()
int
total()
Returns the sum of all counts in the map.Collection<Integer>
values()
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
Method Detail
-
containsKey
public boolean containsKey(Object key)
- Specified by:
containsKey
in interfaceMap<K,Integer>
-
containsValue
public boolean containsValue(Object value)
- Specified by:
containsValue
in interfaceMap<K,Integer>
-
count
public int count(K key)
Returns the count associated with the specified key, or zero if the key has never been incremented.- Parameters:
key
- the key whose associated count is to be returned- Returns:
- the count associated with the specified key, or zero if the key has never been incremented
-
equals
public boolean equals(Object o)
-
hashCode
public int hashCode()
-
increment
public int increment(K key)
Increments the count associated with the specified key and returns the incremented count. If the key doesn't already exist in the map, it will be added.- Parameters:
key
- the key whose associated count is to be incremented- Returns:
- the incremented value associated with the specified key
-
incrementAll
public void incrementAll(Collection<K> keys)
Increments the count associated with the specified keys. If a key doesn't already exist in the map, it will be added.- Parameters:
keys
- the keys whose associated count is to be incremented
-
max
public int max()
- Returns:
-
seen
public boolean seen(K key)
Returns true if the specified key has ever been incremented, false otherwise.- Parameters:
key
- the key whose presence is to be tested- Returns:
- true if the specified key has ever been incremented, false otherwise
-
sortedKeyList
public List<K> sortedKeyList()
Returns a list of the keys in this map, sorted by ascending count.- Returns:
- a list of the keys in this map, sorted by ascending count
-
sortedKeyList
public List<K> sortedKeyList(boolean sortDescending)
Returns a list of the keys in this map, sorted as specified.- Parameters:
sortDescending
- true to sort by descending count, false to sort by ascending count- Returns:
- a list of the keys in this map, sorted as specified.
-
total
public int total()
Returns the sum of all counts in the map.
-
-