在数据库中,我有以这种格式的数据:
要求是以这种格式表示excel中的数据:国家/地区名称构成选项卡名称。
我正在考虑将每个数据库行放在一个对象中。要实现格式化,我需要遍历国家/地区列表,然后在每个国家/地区列表(例如美国)中,选择国家/地区列表(纽约州,纽约州)然后在那个循环中迭代每个州(例如纽约州),这样你就得到了纽约和阿拉比。对其他状态重复此操作&然后走出循环&然后以同样的方式迭代其他国家。
但我面临的困难是,如何在Java中表示允许我以所需格式迭代的数据?因此,当我对美国进行迭代时,它给了我纽约和新泽西州,当我迭代新泽西州时,它给了我其中的城市。我很震惊。请指点一下让我开始
答案 0 :(得分:2)
使用Map<String, Map<String, List<String>>>
。
确保在插入数据之前正确初始化数据。例如,我在这里插入“纽约市”作为纽约州的美国城市:
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");
...给出我们的初始化过程应该返回一个包含一个项目的列表。
答案 1 :(得分:0)
在Java中,您可以使用包含其他List
作为元素的List
。
List<List<List<City>>>
在班级City
拥有城市的情况下,内部列表包含一个州的所有城市,中间列表包含一个国家/地区的所有州名单,外部列表包含国家/地区。
另一个想法是从按国家和州订购的数据库中获取记录,然后逐个浏览它们,每当遇到新国家时,都会启动新选项卡,当遇到新状态时,启动新表。