1

在数据库中,我有这种格式的数据:

在此处输入图像描述

要求是以这种格式表示 excel 中的数据:国家名称形成选项卡名称。

在此处输入图像描述

我想把每个数据库行放在一个对象中。为了实现格式,我需要遍历国家列表,然后在每个国家列表(例如美国)中,选择国家列表(NY,NY),然后在该循环中遍历每个州(例如纽约),以便获得纽约和阿拉比。对其他州重复此操作,然后退出循环,然后以相同的方式遍历其他国家/地区。

但是我在这里面临的困难是,我如何在 Java 中表示这些数据,这将允许我以所需的格式进行迭代?所以当我迭代美国时,它给了我纽约和新泽西,当我迭代新泽西时,它给了我其中的城市。我很震惊。请给我一些建议,让我继续前进

4

2 回答 2

2

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

  1. 第一个字符串是国家的键。
  2. 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");

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

于 2013-01-11T08:12:18.720 回答
0

在 Java 中,您可以使用List包含另一个List元素的 a。

List<List<List<City>>>

City保存一个城市,内部列表保存一个州的所有城市,中间列表保存一个国家的所有州列表,外部列表保存国家。

另一个想法是从按国家和州排序的数据库中获取记录,然后逐个浏览它们,每当遇到新国家时启动新选项卡,遇到新州时启动新表。

于 2013-01-11T08:07:26.580 回答