Java 创建树状结构

Java 创建树状结构,java,collections,Java,Collections,在数据库中,我有以下格式的数据: 要求在excel中以以下格式表示数据:国家名称构成选项卡名称 我想把每一个DB行放在一个对象中。。为了实现这种格式,我需要遍历国家列表,然后在每个国家列表(例如美国)中,选择州列表(NY,NY),然后在该循环中遍历每个州(例如NY),这样就可以得到纽约和阿拉比。对其他国家重复这一点,然后退出循环,然后以同样的方式迭代其他国家 但我在这里面临的困难是,如何用Java表示数据,从而允许我以所需的格式进行迭代?所以当我迭代我们的时候,它给了我NY和NJ,当我迭代N

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

要求在excel中以以下格式表示数据:国家名称构成选项卡名称

我想把每一个DB行放在一个对象中。。为了实现这种格式,我需要遍历国家列表,然后在每个国家列表(例如美国)中,选择州列表(NY,NY),然后在该循环中遍历每个州(例如NY),这样就可以得到纽约和阿拉比。对其他国家重复这一点,然后退出循环,然后以同样的方式迭代其他国家


但我在这里面临的困难是,如何用Java表示数据,从而允许我以所需的格式进行迭代?所以当我迭代我们的时候,它给了我NY和NJ,当我迭代NJ的时候,它给了我其中的城市。我被打动了。在Java中,您可以使用包含另一个
列表
元素的
列表

List<List<List<City>>>
列表
当类
城市
包含一个城市时,内部列表包含一个州的所有城市,中间列表包含一个国家的所有州列表,外部列表包含国家

另一种方法是从数据库中提取按国家和州排序的记录,然后逐个检查,每当遇到新国家时,启动新选项卡,当遇到新国家时,启动新表。

使用
映射

  • 第一根弦是国家的钥匙
  • 地图是一张地图,其中键是州,值是城市列表
  • 请确保在插入数据之前正确初始化数据。例如,我在此处插入“纽约市”作为纽约州的美国城市:

    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");
    
    Map fullMap=newhashmap();
    put(“US”,新的HashMap());
    fullMap.get(“US”).put(“NY”,新ArrayList());
    fullMap.get(“美国”).get(“纽约”).add(“纽约”);
    
    要获得(美国、纽约)的城市列表,您必须执行以下操作:

    List<String> nyCities = map.get("US").get("NY");
    
    List nyCities=map.get(“美国”).get(“纽约”);
    

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

    这太棒了。多谢!