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 voidclear()booleancontainsKey(Object key)booleancontainsValue(Object value)intcount(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()booleanequals(Object o)Integerget(Object key)inthashCode()intincrement(K key)Increments the count associated with the specified key and returns the incremented count.voidincrementAll(Collection<K> keys)Increments the count associated with the specified keys.booleanisEmpty()Set<K>keySet()intmax()Integerput(K key, Integer value)voidputAll(Map<? extends K,? extends Integer> t)Integerremove(Object key)booleanseen(K key)Returns true if the specified key has ever been incremented, false otherwise.intsize()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.StringtoString()inttotal()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:
containsKeyin interfaceMap<K,Integer>
-
containsValue
public boolean containsValue(Object value)
- Specified by:
containsValuein 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.
-
-