My parentMap is look like something below.
HashMap<String, Integer>>> parentMap = {disabled={account={test1=22}, group={test2=10}}}
What I suppose to do is, if operationType=disabled and objectType=account or group etc and testName=test1 or test2 etc then I suppose to increase the count of test1 by 1.
I have to update the same map so that at the end I should get some statistic like there are 22 tests cases of objectType=account and 10 tests cases of objectType=group etc are disabled  
I tried something below but it is going in infinite loop as I'm putting values in the map and iterating over it again.
private HashMap<String, HashMap<String, HashMap<String, Integer>>> countTags(String statType, String objectType,
            String opType, HashMap<String, HashMap<String, HashMap<String, Integer>>> parentMap) {
        if (!Util.isEmpty(parentMap)) {
            //created new map to avoid infinite loop here but no luck :(
            HashMap<String, HashMap<String, Integer>> objMap = new HashMap<>();
            objMap.putAll(parentMap.get(statType));
            Iterator<Entry<String, HashMap<String, Integer>>> it = objMap.entrySet().iterator();
            while (it.hasNext()) {
                Entry<String, HashMap<String, Integer>> operationEntry = it.next();
                HashMap<String, Integer> operationMap = operationEntry.getValue();
                Set<String> opKeySet = operationMap.keySet();
                Iterator<String> opIt = opKeySet.iterator();
                while (opIt.hasNext()) {
                    parentMap.put(statType, countTags(objectType, opType, operationMap));
                }
            }
        } else {
            parentMap.put(statType, countTags(objectType, opType, new HashMap<String, Integer>()));
        }
        return parentMap;
    }
    private HashMap<String, HashMap<String, Integer>> countTags(String objectType, String opType, HashMap<String, Integer> tagMap) {
        int testRepeatCount = tagMap.get(opType) != null ? tagMap.get(opType) : 0;
        tagMap.put(opType, 1 + testRepeatCount);
        HashMap<String, HashMap<String, Integer>> objMap = new HashMap<>();
        objMap.put(objectType, tagMap);
        return objMap;
    }
I found
a.compute(key, (k, v) -> v == null ? 1 : v + 1); also some suggestions here Java map.get(key) - automatically do put(key) and return if key doesn't exist?  but can I get some help how optimally I should achieve my desired outcome here?
