You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:42:15