Java tutorial
//package com.java2s; /* * This software is in the public domain under CC0 1.0 Universal plus a * Grant of Patent License. * * To the extent possible under law, the author(s) have dedicated all * copyright and related and neighboring rights to this software to the * public domain worldwide. This software is distributed without any * warranty. * * You should have received a copy of the CC0 Public Domain Dedication * along with this software (see the LICENSE.md file). If not, see * <http://creativecommons.org/publicdomain/zero/1.0/>. */ import java.util.*; public class Main { /** Creates a single Map with fields from the passed in Map and all nested Maps (for Map and Collection of Map entry values) */ @SuppressWarnings("unchecked") public static Map flattenNestedMap(Map theMap) { if (theMap == null) return null; Map outMap = new LinkedHashMap(); for (Object entryObj : theMap.entrySet()) { Map.Entry entry = (Map.Entry) entryObj; Object value = entry.getValue(); if (value instanceof Map) { outMap.putAll(flattenNestedMap((Map) value)); } else if (value instanceof Collection) { for (Object colValue : (Collection) value) { if (colValue instanceof Map) outMap.putAll(flattenNestedMap((Map) colValue)); } } else { outMap.put(entry.getKey(), entry.getValue()); } } return outMap; } }