java如何在迭代字符串数组列表时创建复杂的嵌套对象
我有这样一个输入
private String[] one = {"North America","USA","IL","ch","chicago"};
private String[] two = {"North America","USA","WI","ma","madision"};
private String[] three = {"Asia","India","AP","nlr","nlr"};
private String[] four = {"asia","india","TN","ch","chennai"};
并将像这样添加到列表中
private List<String[]> entities = new ArrayList<>();
private void initializeStringArray(){
entities.add(one);
entities.add(two);
entities.add(three);
entities.add(four);
}
现在,我想将这些实体转换为嵌套对象,如 大陆->;国家->;国家->;地区->;城市希望了解创建嵌套对象的最佳解决方案。创建嵌套对象时会非常混乱。谁能给我最好的解决办法
public class Continents{
private String name;
private Collection<Country> countryCollection;
}
public class Country{
private String name;
private Collection<State> stateCollection;
}
public class State{
private String name;
private Collection<District> districtCollection;
}
public class District{
private String name;
private Collection<City> cityCollection;
}
public class City{
private String name;
}
# 1 楼答案
警告:我不知道如何确定哪种解决方案可能是“最好的解决方案”。然而,这里是一个可能的解决方案,也许不是最好的
我假设您只希望有一个“北美”的实例,用于“芝加哥”和“Madison”。因此,也许可以创建一个有大陆词典的“世界”类:
未经测试的代码:
世界是独特大陆实例的集合,也是新大陆的工厂
然后,欧洲大陆就会有一张国家地图,充当国家的工厂,在你们的层级结构中重复这种模式
然后,您的代码与(未经测试的代码)类似:
这里的关键点是,每一层都充当一个容器和一个工厂,用于下一层的唯一实例