糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 中国各省市区县一览表java处理

中国各省市区县一览表java处理

时间:2024-05-31 20:42:53

相关推荐

中国各省市区县一览表java处理

前期准备

获取表格

链接: /s/1Jh8_NgdPDMPXKFQtEPcYmg 提取码: 6a4i

表格样式

2. 导入到数据库中

导入后就是这样

然后就可以利用java来操作数据了

二、组成父子结构

创建对应的javaBean类

@Datapublic class Region {private String nameProv;private Integer codeProv;private String nameCity;private Integer codeCity;private String nameCoun;private Integer codeCoun;private String nameTown;private Integer codeTown;}

public Map<Integer, Map<Integer, Map<Integer, List<Region>>>> getAll() {//每个province的map都放进去Map<Integer, Map<Integer, Map<Integer, List<Region>>>> provinceMap = new HashMap<>();//获取所有的数据List<Region> all = regionMapper.getAll();//根据pro_code分好的List 相当于每个provinceMap<Integer, List<Region>> provinces = all.stream().collect(Collectors.groupingBy(Region::getCodeProv));for (Map.Entry<Integer,List<Region>> province : provinces.entrySet()) {//获取每个省的cityListList<Region> singleProvince = province.getValue();//每个city的countryListMap<Integer, List<Region>> cities = singleProvince.stream().collect(Collectors.groupingBy(Region::getCodeCity));//每个city的map都放进去Map<Integer, Map<Integer, List<Region>>> cityMap = new HashMap<>();for (Map.Entry<Integer,List<Region>> city : cities.entrySet()) {//每个city的countryListList<Region> singleCity = city.getValue();//根据country的code区分的list 也就是每个country的townListMap<Integer, List<Region>> countrys = singleCity.stream().collect(Collectors.groupingBy(Region::getCodeCoun));cityMap.put(city.getKey(), countrys);}provinceMap.put(province.getKey(), cityMap);}return provinceMap;}

返回的数据结构

三、优化二

因为list里的数据重复性太大,可以直接用街道的String代替

四、指针指向父亲

创建新的javaBean类

@Datapublic class RegionVo {private String name;private Integer code;//private RegionVo parent;private Integer parentCode;public RegionVo() {}public RegionVo(String name) {this.name = name;}public RegionVo(String name, Integer code) {this.name = name;this.code = code;}@Overridepublic String toString() {return "RegionVo{" +"name='" + name + '\'' +", code=" + code +'}';}}

还用到了上面的第二个方法

public List<RegionVo> getAll3() {int code = 10001;Map<String, Map<String, Set<String>>> provinceMap = getAll2();List<RegionVo> list = new ArrayList<>();for (Map.Entry<String, Map<String, Set<String>>> province : provinceMap.entrySet()) {String provinceName = province.getKey();Map<String, Set<String>> cityMap = province.getValue();RegionVo provinceVo = new RegionVo(provinceName);provinceVo.setParentCode(0);provinceVo.setCode(code++);list.add(provinceVo);for (Map.Entry<String, Set<String>> city : cityMap.entrySet()) {String cityName = city.getKey();Set<String> countrySet = city.getValue();RegionVo cityVo = new RegionVo(cityName);cityVo.setParentCode(provinceVo.getCode());cityVo.setCode(code++);//cityVo.setParent(provinceVo);list.add(cityVo);for (String countryName : countrySet) {RegionVo countryVo = new RegionVo(countryName);countryVo.setParentCode(cityVo.getCode());countryVo.setCode(code++);//countryVo.setParent(cityVo);list.add(countryVo);}}}return list;}

返回的数据结果图

如果觉得《中国各省市区县一览表java处理》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。