Class ObjectIntTreeMap

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.util.Map, java.util.NavigableMap, java.util.SortedMap

    public class ObjectIntTreeMap
    extends java.util.TreeMap
    This class is a map which binds key Object to int value.

    This class is NOT thread safe, synchronize read and write operation when used in multi-threaded context if you really need features provided by this collection.
    In multithreaded context, it may be wiser to use alternative thread safe and type safe collection such as ConcurrentHashMap<YourType, Integer>.

    Author:
    Olivier Dedieu
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  ObjectIntTreeMap.GreaterComparator
      A Comparator that sort TreeMap of ObjectIntTreeMap by Max Value
      protected static class  ObjectIntTreeMap.KeyComparator
      A Comparator that sort TreeMap of ObjectIntTreeMap by Key Value
      protected static class  ObjectIntTreeMap.LowerComparator
      A Comparator that sort TreeMap of ObjectIntTreeMap by Min Value
      static class  ObjectIntTreeMap.ObjectComparator
      A Comparator that allow ObjectyIntTreeMap to sort multiple kind of Object
      protected static class  ObjectIntTreeMap.SortedKeyComparator
      A Comparator that sort TreeMap of ObjectIntTreeMap by Key Value sorted using a sorted List
      • Nested classes/interfaces inherited from class java.util.AbstractMap

        java.util.AbstractMap.SimpleEntry<K extends java.lang.Object,​V extends java.lang.Object>, java.util.AbstractMap.SimpleImmutableEntry<K extends java.lang.Object,​V extends java.lang.Object>
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int getAverage()
      Return the Average value of the Map or 0 if Map is Empty
      int getAverage​(int level)
      Return the Average value of the Map or 0 if Map is Empty
      int getAverageCount()
      Return the Average value of the Map or 0 if Map is Empty
      int getAverageCount​(int level)
      Return the Average value of the Map or 0 if Map is Empty
      int getAverageCount​(int level, int deep)
      Return the Average value of the Map or 0 if Map is Empty
      int getAverageSum()
      This method sum all average at level N-1
      ObjectIntTreeMap getConsolidatedMap​(int level)
      This method return an ObjectIntTreeMap consolidated at a given level.
      protected ObjectIntTreeMap getConsolidatedMap​(int level, ObjectIntTreeMap workingMap)  
      int getCount()
      Return the Count value of the Map or Integer.MIN_VALUE if Map is Empty
      int getCount​(int level)
      Return the Count value of the Map or 0 if Map is Empty
      int getCount​(int level, int boundary)
      Return the Count value of the Map or 0 if Map is Empty
      int getCount​(int level, int boundary, int single)
      Return the Count value of the Map or 0 if Map is Empty
      static java.util.Comparator getGreaterComparator()
      Sort ObjectIntTreeMap from larger to smaller
      int getInt​(java.lang.Object key, int defaultValue)
      Returns the value to which this map maps the specified key.
      static java.util.Comparator getLowerComparator()
      Sort ObjectIntTreeMap from smaller to larger
      int getMax()
      Return the Max value of the Map or Integer.MIN_VALUE if Map is Empty
      int getMax​(int level)
      Return the Max value of the Map or Integer.MIN_VALUE if Map is Empty
      int getMaxCount()
      Return the Max size value of the Map or Integer.MIN_VALUE if Map is Empty
      int getMaxCount​(int level)
      Return the Max value of the Map or Integer.MIN_VALUE if Map is Empty
      int getMaxCount​(int level, int deep)
      Return the Max size value of the Map or Integer.MIN_VALUE if Map is Empty Map A > Map B > Map C level: 0 deep : 1 will count min C between A
      int getMin()
      Return the Min value of the Map or Integer.MAX_VALUE if Map is Empty
      int getMin​(int level)
      Return the Min value of the Map or Integer.MAX_VALUE if Map is Empty
      int getMinCount()
      Return the Min size value of the Map or Integer.MAX_VALUE if Map is Empty
      int getMinCount​(int level)
      Return the Min value of the Map or Integer.MAX_VALUE if Map is Empty
      int getMinCount​(int level, int deep)
      Return the Min size value of the Map or Integer.MAX_VALUE if Map is Empty
      static java.util.Comparator getSortedKeyComparator​(java.lang.String[] sort)
      Sort ObjectIntTreeMap ordered by a predifined List
      static java.util.Comparator getSortedKeyComparator​(java.util.List sort)
      Sort ObjectIntTreeMap ordered by a predifined List
      static java.util.SortedSet getSortedMapEntrySet​(java.util.Map map, java.util.Comparator comparator)
      This method return a Sorted Set of Map.Entry
      int getSum()
      Return the Sum value of the Map or 0 if Map is Empty
      int getSum​(int level, java.lang.String key)
      Return the sum of a given key at a given level
      int getSum​(int level, java.util.Set keySet, java.util.Map map)
      Return the sum of given keys at a given level
      void inc​(java.lang.Object key)
      Increments the value associated with the specified key.
      void inc​(java.lang.Object key, int quantity)
      Incremente the value associated with the specified key.
      void inc​(java.lang.String key, ObjectIntTreeMap map)
      Increments the value associated with the specified key.
      void incAll​(ObjectIntTreeMap map)
      Incremente all the values of the specified ObjectIntTreeMap.
      boolean isMultiMap()
      Return true if the ObjectIntTreeMap contains ObjectIntTreeMap Return false if the ObjectIntTreeMap contains int[]
      void put​(java.lang.Object key, int value)
      Associates the specified value with the specified key in this map.
      java.lang.String toString()
      Special implementation of toString()
      • Methods inherited from class java.util.TreeMap

        ceilingEntry, ceilingKey, clear, clone, comparator, containsKey, containsValue, descendingKeySet, descendingMap, entrySet, firstEntry, firstKey, floorEntry, floorKey, forEach, get, headMap, headMap, higherEntry, higherKey, keySet, lastEntry, lastKey, lowerEntry, lowerKey, navigableKeySet, pollFirstEntry, pollLastEntry, put, putAll, remove, replace, replace, replaceAll, size, subMap, subMap, tailMap, tailMap, values
      • Methods inherited from class java.util.AbstractMap

        equals, hashCode, isEmpty
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Map

        compute, computeIfAbsent, computeIfPresent, equals, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, remove
    • Constructor Detail

      • ObjectIntTreeMap

        public ObjectIntTreeMap()
        Default convenient constructor
      • ObjectIntTreeMap

        public ObjectIntTreeMap​(java.util.Comparator c)
        A constructor working with a comparator
        Parameters:
        c - the Comparator
      • ObjectIntTreeMap

        public ObjectIntTreeMap​(ObjectIntTreeMap oitm)
        A constructor working with a comparator
        Parameters:
        oitm - the Comparator
    • Method Detail

      • put

        public void put​(java.lang.Object key,
                        int value)
        Associates the specified value with the specified key in this map. If the map previously contained a mapping for this key, the old value is replaced.
        Parameters:
        key - key with which the specified value is to be associated.
        value - value to be associated with the specified key.
      • inc

        public void inc​(java.lang.Object key,
                        int quantity)
        Incremente the value associated with the specified key. If this key did not exist, it is created and the value is set to quantity.
        Parameters:
        key - key for which the specified value must be incremented.
        quantity - the quantity to increment
      • incAll

        public void incAll​(ObjectIntTreeMap map)
        Incremente all the values of the specified ObjectIntTreeMap. If a key did not exist, it is created and the value is set to quantity. If the value is an ObjectIntTreeMap the job is done recursively.
        Parameters:
        map - ObjectIntTreeMap to work with
      • inc

        public void inc​(java.lang.String key,
                        ObjectIntTreeMap map)
        Increments the value associated with the specified key. If this key did not exist, it is create.
        Parameters:
        key - key for which the specified value must be incremented.
        map - the ObjectIntTreeMap to inc with
      • inc

        public void inc​(java.lang.Object key)
        Increments the value associated with the specified key. If this key did not exist, it is created and the value is set to '1'.
        Parameters:
        key - key for which the specified value must be incremented.
      • getInt

        public int getInt​(java.lang.Object key,
                          int defaultValue)
        Returns the value to which this map maps the specified key. Returns defaultValue if the map contains no mapping for this key.
        Parameters:
        key - key whose associated value is to be returned.
        defaultValue - value to return if the map contains no mapping for this key.
        Returns:
        the value to which this map maps the specified key, or defaultValue if the map contains no mapping for this key.
      • getAverage

        public int getAverage​(int level)
        Return the Average value of the Map or 0 if Map is Empty
        Parameters:
        level - the max depth of Maps
        Returns:
        int the level
        Since:
        jcms-4.2
      • getAverage

        public int getAverage()
        Return the Average value of the Map or 0 if Map is Empty
        Since:
        jcms-4.2
      • getAverageCount

        public int getAverageCount​(int level)
        Return the Average value of the Map or 0 if Map is Empty
        Parameters:
        level - the max depth of Maps
        Returns:
        int the level
        Since:
        jcms-5.0.3
      • getAverageCount

        public int getAverageCount​(int level,
                                   int deep)
        Return the Average value of the Map or 0 if Map is Empty
        Parameters:
        level - the max depth of Maps
        deep - the level to count
        Returns:
        int the level
        Since:
        jcms-5.0.3
      • getAverageCount

        public int getAverageCount()
        Return the Average value of the Map or 0 if Map is Empty
        Since:
        jcms-5.0.3
      • getCount

        public int getCount​(int level,
                            int boundary)
        Return the Count value of the Map or 0 if Map is Empty
        Parameters:
        level - the count depth of Maps
        boundary - the max value to return
        Returns:
        int the count
        Since:
        jcms-5.0.2
      • getCount

        public int getCount​(int level,
                            int boundary,
                            int single)
        Return the Count value of the Map or 0 if Map is Empty
        Parameters:
        level - the count depth of Maps
        boundary - the max value to return
        single - the level where to get single content (remove duplicate)
        Returns:
        int the count
        Since:
        jcms-5.0.2
      • getCount

        public int getCount​(int level)
        Return the Count value of the Map or 0 if Map is Empty
        Parameters:
        level - the count depth of Maps
        Returns:
        int the count
        Since:
        jcms-4.2
      • getCount

        public int getCount()
        Return the Count value of the Map or Integer.MIN_VALUE if Map is Empty
        Returns:
        int the count
        Since:
        jcms-4.2
      • getSum

        public int getSum()
        Return the Sum value of the Map or 0 if Map is Empty
        Returns:
        int the sum
        Since:
        jcms-4.2
      • getSum

        public int getSum​(int level,
                          java.lang.String key)
        Return the sum of a given key at a given level
        Parameters:
        level - the working level
        key - the working key
        Returns:
        int the sum
      • getSum

        public int getSum​(int level,
                          java.util.Set keySet,
                          java.util.Map map)
        Return the sum of given keys at a given level
        Parameters:
        level - the working level
        keySet - the working key
        map - the working map
        Returns:
        int the sum
      • getAverageSum

        public int getAverageSum()
        This method sum all average at level N-1
        Returns:
        int the sum of average
      • getMax

        public int getMax​(int level)
        Return the Max value of the Map or Integer.MIN_VALUE if Map is Empty
        Parameters:
        level - the max depth of Maps
        Returns:
        int the max
        Since:
        jcms-4.2
      • isMultiMap

        public boolean isMultiMap()
        Return true if the ObjectIntTreeMap contains ObjectIntTreeMap Return false if the ObjectIntTreeMap contains int[]
        Returns:
        boolean
      • getMax

        public int getMax()
        Return the Max value of the Map or Integer.MIN_VALUE if Map is Empty
        Returns:
        int the max
        Since:
        jcms-4.2
      • getMaxCount

        public int getMaxCount​(int level)
        Return the Max value of the Map or Integer.MIN_VALUE if Map is Empty
        Parameters:
        level - the max depth of Maps
        Returns:
        int the max
        Since:
        jcms-5.0.3
      • getMaxCount

        public int getMaxCount​(int level,
                               int deep)
        Return the Max size value of the Map or Integer.MIN_VALUE if Map is Empty Map A > Map B > Map C level: 0 deep : 1 will count min C between A
        Parameters:
        level - the max depth of Maps
        deep - the depth to count on
        Returns:
        int the max
        Since:
        jcms-5.0.3
      • getMaxCount

        public int getMaxCount()
        Return the Max size value of the Map or Integer.MIN_VALUE if Map is Empty
        Since:
        jcms-5.0.3
      • getMin

        public int getMin​(int level)
        Return the Min value of the Map or Integer.MAX_VALUE if Map is Empty
        Parameters:
        level - the max depth of Maps
        Returns:
        int the min
        Since:
        jcms-4.2
      • getMin

        public int getMin()
        Return the Min value of the Map or Integer.MAX_VALUE if Map is Empty
        Returns:
        int the min
        Since:
        jcms-4.2
      • getMinCount

        public int getMinCount​(int level)
        Return the Min value of the Map or Integer.MAX_VALUE if Map is Empty
        Parameters:
        level - the max depth of Maps
        Returns:
        int the min
        Since:
        jcms-5.0.3
      • getMinCount

        public int getMinCount​(int level,
                               int deep)
        Return the Min size value of the Map or Integer.MAX_VALUE if Map is Empty
        Parameters:
        level -
        Returns:
        int the min count
        Since:
        jcms-5.0.3
      • getMinCount

        public int getMinCount()
        Return the Min size value of the Map or Integer.MAX_VALUE if Map is Empty
        Returns:
        int the min count
        Since:
        jcms-5.0.3
      • getSortedMapEntrySet

        public static java.util.SortedSet getSortedMapEntrySet​(java.util.Map map,
                                                               java.util.Comparator comparator)
        This method return a Sorted Set of Map.Entry
        Parameters:
        map - a TreeMap that is an ObjectIntTreeMap or composed by ObjectIntTreeMap.
        comparator - the comparator to sort objects.
        Returns:
        SortedSet of Map.Entry
        Since:
        jcms-4.2
      • getConsolidatedMap

        public ObjectIntTreeMap getConsolidatedMap​(int level)
        This method return an ObjectIntTreeMap consolidated at a given level. [Key1 , Key2 , Key3, Key4] [Key2.1, Key2.2, Key2.3, Key2.4] [Key2.2.1, Key2.2.2, Key2.2.3, Key2.2.4] [Val2.2.1, Val2.2.1, Val2.2.1, Val2.2.1] With level=1, this method return a new Map with values of Keyx.y replaced by consolidated values of keys Keyx.y.z
        Parameters:
        level - the map level to consolidate
        Returns:
        an ObjectIntTreeMap
      • toString

        public java.lang.String toString()
        Special implementation of toString()
        Overrides:
        toString in class java.util.AbstractMap
      • getGreaterComparator

        public static java.util.Comparator getGreaterComparator()
        Sort ObjectIntTreeMap from larger to smaller
      • getLowerComparator

        public static java.util.Comparator getLowerComparator()
        Sort ObjectIntTreeMap from smaller to larger
      • getSortedKeyComparator

        public static java.util.Comparator getSortedKeyComparator​(java.util.List sort)
        Sort ObjectIntTreeMap ordered by a predifined List
      • getSortedKeyComparator

        public static java.util.Comparator getSortedKeyComparator​(java.lang.String[] sort)
        Sort ObjectIntTreeMap ordered by a predifined List