如何实现Map嵌套:构建世界-国家-州-城市层级并存储多国家数据
构建World->Country->State->Cities层级Map的完整实现
嘿,我来帮你搞定这个层级Map的构建问题!你已经完成了大部分工作,只差最后一步把单个国家的Map整合进顶层的World Map里就行。先帮你修正下代码里的小笔误——你把中央邦(MP)的城市加到马哈拉施特拉邦(MH)的列表里了,这个得改过来,不然数据会出错。
下面是完整的实现步骤和代码:
1. 正确创建各州的城市列表
先把州对应的城市列表理清楚,别串了:
// 马哈拉施特拉邦的城市列表 List<String> mhCities = new ArrayList<>(); mhCities.add("Pune"); mhCities.add("Mumbai"); // 中央邦的城市列表 List<String> mpCities = new ArrayList<>(); mpCities.add("Bhopal"); mpCities.add("Indore");
2. 构建印度的State->Cities Map
把上面的城市列表关联到对应的州,组成印度的州级Map:
Map<String, List<String>> indiaStateMap = new HashMap<>(); indiaStateMap.put("Maharashtra", mhCities); indiaStateMap.put("Madhya Pradesh", mpCities);
3. 构建顶层的World->Country Map
现在创建一个顶层的Map,把印度和另一个国家(比如美国)的州级Map都放进去:
// 先快速整个美国的州和城市示例 List<String> caCities = new ArrayList<>(); caCities.add("Los Angeles"); caCities.add("San Francisco"); Map<String, List<String>> usaStateMap = new HashMap<>(); usaStateMap.put("California", caCities); // 顶层World Map:键是国家名称,值是对应国家的State->Cities Map Map<String, Map<String, List<String>>> worldMap = new HashMap<>(); worldMap.put("India", indiaStateMap); worldMap.put("USA", usaStateMap);
4. 验证层级数据的访问
你可以这样访问层级里的具体数据,确保结构正确:
// 获取印度马哈拉施特拉邦的城市列表 List<String> maharashtraCities = worldMap.get("India").get("Maharashtra"); System.out.println("Maharashtra cities: " + maharashtraCities); // 输出 [Pune, Mumbai] // 获取美国加州的城市列表 List<String> californiaCities = worldMap.get("USA").get("California"); System.out.println("California cities: " + californiaCities); // 输出 [Los Angeles, San Francisco]
核心逻辑就是顶层Map的泛型定义为Map<String, Map<String, List<String>>>——外层键是国家名,值是每个国家自己的州-城市Map,这样就完美实现了你要的World->Country->State->Cities层级结构啦!
内容的提问来源于stack exchange,提问作者Dip
相关产品推荐
相关产品推荐

