Map 嵌套map 遍历

private static Map flatten(final String key, final Map map,
        final Map result) {
    final Set> entries = map.entrySet();
    if (!entries.isEmpty()) {
        for (final Map.Entry entry : entries) {
            //iterate over entries
            final String currKey = key + (key.isEmpty() ? "" : '.') + entry.getKey();
           //append current key to previous key, adding a dot if the previous key was not an empty String
            final Object value = entry.getValue();
            if (value instanceof Map) {//current value is a Map
                flatten(currKey, (Map) value, result);//flatten Map
            } else if (value instanceof List) {//current value is a List
                final List list = (List) value;
                for (int i = 0, size = list.size(); i < size; i++) {
                    result.put(currKey + '.' + (i + 1), list.get(i));
                }
                //iterate over the List and append the index to the current key when setting value
            } else {
                result.put(currKey, value);//set normal value
            }
        }
    }
    return result;
}
 
  

                            
                        
                    
                    
                    

你可能感兴趣的:(java,map)