java - 创建树状结构

标签 java collections

在数据库中,我有以下格式的数据:

enter image description here

要求以以下格式表示 Excel 中的数据:国家/地区名称构成选项卡名称。

enter image description here

我正在考虑将每个数据库行放入一个对象中。为了以格式实现,我需要迭代国家/地区列表,然后在每个国家/地区列表(例如美国)中,选择国家/地区列表(纽约州、纽约州) )然后在该循​​环中迭代每个州(例如纽约),这样你就得到了纽约和阿拉比。对其他州重复此操作,然后跳出循环,然后以相同的方式迭代其他国家。

但是我在这里面临的困难是,如何在 Java 中表示该数据,以便我能够以所需的格式进行迭代?因此,当我迭代 US 时,它会给出 NY 和 NJ,而当我迭代 NJ 时,它会给出其中的城市。我很震惊。请给我一些建议,让我继续前进

最佳答案

使用 Map<String, Map<String, List<String>>> .

  1. 第一个字符串是国家/地区的 key 。
  2. map 是一个 map ,其中键是州,值是城市列表。

在插入数据之前,请务必正确初始化数据。例如,我在这里插入“纽约市”作为纽约州的美国城市:

Map<String, Map<String, List<String>>> fullMap = new HashMap<String, Map<String, List<String>>>();
fullMap.put("US", new HashMap<String, List<String>>());
fullMap.get("US").put("NY", new ArrayList<String>());
fullMap.get("US").get("NY").add("New York");

要获取(美国、纽约)城市列表,您必须执行以下操作:

List<String> nyCities = map.get("US").get("NY");

...给定我们的初始化过程应该返回一个包含一项的列表。

关于java - 创建树状结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14273886/

相关文章:

php - Magento CMS block 集合,无法按商店 ID 进行过滤 - addStoreFilter([storeid]) 不起作用

scala .seq 与 .toSeq

java多映射arraylist

java - 消除方形边缘按钮java

java - 固定尺寸 Swing GUI 在使用不同分辨率时发生变化

java - 准备好的声明存在问题

java - 如何将 "Hashmap values of List type"转换成Set?

java - 如何在 Jersey RESTful web 服务中放置 cookie?

java - Play 框架中的表单验证

java - 如何根据字符串数组中的单词出现对 map 进行排序