Java解析省市县树形结构工具类

50 篇文章 2 订阅
19 篇文章 7 订阅

这篇博客将介绍如何根据6位行政编码,解析出省市县区等。adcode共6位,前俩位省/直辖市/自治区,前4位城市,6位区县,并优雅的树形结构输出省市。

本文只解析了俩层,感兴趣的小伙伴可以自行解析区县。

1.效果图

在这里插入图片描述
优雅的树形结构输出省市:
在这里插入图片描述

22:30:51.617 [main] INFO TestCityProvinceMap - map: 34 {370000=Province(proadcode=370000, name=山东省, cities=[City(citycode=370100, name=济南市), City(citycode=370200, name=青岛市), City(citycode=370300, name=淄博市), City(citycode=370400, name=枣庄市), City(citycode=370500, name=东营市), City(citycode=370600, name=烟台市), City(citycode=370700, name=潍坊市), City(citycode=370800, name=济宁市), City(citycode=370900, name=泰安市), City(citycode=371000, name=威海市), City(citycode=371100, name=日照市), City(citycode=371300, name=临沂市), City(citycode=371400, name=德州市), City(citycode=371500, name=聊城市), City(citycode=371600, name=滨州市), City(citycode=371700, name=菏泽市)]), 620000=Province(proadcode=620000, name=甘肃省, cities=[City(citycode=620100, name=兰州市), City(citycode=620200, name=嘉峪关市), City(citycode=620300, name=金昌市), City(citycode=620400, name=白银市), City(citycode=620500, name=天水市), City(citycode=620600, name=武威市), City(citycode=620700, name=张掖市), City(citycode=620800, name=平凉市), City(citycode=620900, name=酒泉市), City(citycode=621000, name=庆阳市), City(citycode=621100, name=定西市), City(citycode=621200, name=陇南市), City(citycode=622900, name=临夏回族自治州), City(citycode=623000, name=甘南藏族自治州)]), 320000=Province(proadcode=320000, name=江苏省, cities=[City(citycode=320100, name=南京市), City(citycode=320200, name=无锡市), City(citycode=320300, name=徐州市), City(citycode=320400, name=常州市), City(citycode=320500, name=苏州市), City(citycode=320600, name=南通市), City(citycode=320700, name=连云港市), City(citycode=320800, name=淮安市), City(citycode=320900, name=盐城市), City(citycode=321000, name=扬州市), City(citycode=321100, name=镇江市), City(citycode=321200, name=泰州市), City(citycode=321300, name=宿迁市)]), 110000=Province(proadcode=110000, name=北京市, cities=[City(citycode=110000, name=北京市)]), 530000=Province(proadcode=530000, name=云南省, cities=[City(citycode=530100, name=昆明市), City(citycode=530300, name=曲靖市), City(citycode=530400, name=玉溪市), City(citycode=530500, name=保山市), City(citycode=530600, name=昭通市), City(citycode=530700, name=丽江市), City(citycode=530800, name=普洱市), City(citycode=530900, name=临沧市), City(citycode=532300, name=楚雄彝族自治州), City(citycode=532500, name=红河哈尼族彝族自治州), City(citycode=532600, name=文山壮族苗族自治州), City(citycode=532800, name=西双版纳傣族自治州), City(citycode=532900, name=大理白族自治州), City(citycode=533100, name=德宏傣族景颇族自治州), City(citycode=533300, name=怒江傈僳族自治州), City(citycode=533400, name=迪庆藏族自治州)]), 460000=Province(proadcode=460000, name=海南省, cities=[City(citycode=460100, name=海口市), City(citycode=460200, name=三亚市), City(citycode=460300, name=三沙市), City(citycode=460400, name=儋州市)]), 330000=Province(proadcode=330000, name=浙江省, cities=[City(citycode=330100, name=杭州市), City(citycode=330200, name=宁波市), City(citycode=330300, name=温州市), City(citycode=330400, name=嘉兴市), City(citycode=330500, name=湖州市), City(citycode=330600, name=绍兴市), City(citycode=330700, name=金华市), City(citycode=330800, name=衢州市), City(citycode=330900, name=舟山市), City(citycode=331000, name=台州市), City(citycode=331100, name=丽水市)]), 310000=Province(proadcode=310000, name=上海市, cities=[City(citycode=310000, name=上海市)]), 120000=Province(proadcode=120000, name=天津市, cities=[City(citycode=120000, name=天津市)]), 610000=Province(proadcode=610000, name=陕西省, cities=[City(citycode=610100, name=西安市), City(citycode=610200, name=铜川市), City(citycode=610300, name=宝鸡市), City(citycode=610400, name=咸阳市), City(citycode=610500, name=渭南市), City(citycode=610600, name=延安市), City(citycode=610700, name=汉中市), City(citycode=610800, name=榆林市), City(citycode=610900, name=安康市), City(citycode=611000, name=商洛市)]), 650000=Province(proadcode=650000, name=新疆维吾尔自治区, cities=[City(citycode=650100, name=乌鲁木齐市), City(citycode=650200, name=克拉玛依市), City(citycode=650400, name=吐鲁番市), City(citycode=650500, name=哈密市), City(citycode=652300, name=昌吉回族自治州), City(citycode=652700, name=博尔塔拉蒙古自治州), City(citycode=652800, name=巴音郭楞蒙古自治州), City(citycode=652900, name=阿克苏地区), City(citycode=653000, name=克孜勒苏柯尔克孜自治州), City(citycode=653100, name=喀什地区), City(citycode=653200, name=和田地区), City(citycode=654000, name=伊犁哈萨克自治州), City(citycode=654200, name=塔城地区), City(citycode=654300, name=阿勒泰地区)]), 520000=Province(proadcode=520000, name=贵州省, cities=[City(citycode=520100, name=贵阳市), City(citycode=520200, name=六盘水市), City(citycode=520300, name=遵义市), City(citycode=520400, name=安顺市), City(citycode=520500, name=毕节市), City(citycode=520600, name=铜仁市), City(citycode=522300, name=黔西南布依族苗族自治州), City(citycode=522600, name=黔东南苗族侗族自治州), City(citycode=522700, name=黔南布依族苗族自治州)]), 340000=Province(proadcode=340000, name=安徽省, cities=[City(citycode=340100, name=合肥市), City(citycode=340200, name=芜湖市), City(citycode=340300, name=蚌埠市), City(citycode=340400, name=淮南市), City(citycode=340500, name=马鞍山市), City(citycode=340600, name=淮北市), City(citycode=340700, name=铜陵市), City(citycode=340800, name=安庆市), City(citycode=341000, name=黄山市), City(citycode=341100, name=滁州市), City(citycode=341200, name=阜阳市), City(citycode=341300, name=宿州市), City(citycode=341500, name=六安市), City(citycode=341600, name=亳州市), City(citycode=341700, name=池州市), City(citycode=341800, name=宣城市)]), 820000=Province(proadcode=820000, name=澳门特别行政区, cities=[City(citycode=820000, name=澳门特别行政区)]), 430000=Province(proadcode=430000, name=湖南省, cities=[City(citycode=430100, name=长沙市), City(citycode=430200, name=株洲市), City(citycode=430300, name=湘潭市), City(citycode=430400, name=衡阳市), City(citycode=430500, name=邵阳市), City(citycode=430600, name=岳阳市), City(citycode=430700, name=常德市), City(citycode=430800, name=张家界市), City(citycode=430900, name=益阳市), City(citycode=431000, name=郴州市), City(citycode=431100, name=永州市), City(citycode=431200, name=怀化市), City(citycode=431300, name=娄底市), City(citycode=433100, name=湘西土家族苗族自治州)]), 130000=Province(proadcode=130000, name=河北省, cities=[City(citycode=130100, name=石家庄市), City(citycode=130200, name=唐山市), City(citycode=130300, name=秦皇岛市), City(citycode=130400, name=邯郸市), City(citycode=130500, name=邢台市), City(citycode=130600, name=保定市), City(citycode=130700, name=张家口市), City(citycode=130800, name=承德市), City(citycode=130900, name=沧州市), City(citycode=131000, name=廊坊市), City(citycode=131100, name=衡水市)]), 810000=Province(proadcode=810000, name=香港特别行政区, cities=[City(citycode=810000, name=香港特别行政区)]), 210000=Province(proadcode=210000, name=辽宁省, cities=[City(citycode=210100, name=沈阳市), City(citycode=210200, name=大连市), City(citycode=210300, name=鞍山市), City(citycode=210400, name=抚顺市), City(citycode=210500, name=本溪市), City(citycode=210600, name=丹东市), City(citycode=210700, name=锦州市), City(citycode=210800, name=营口市), City(citycode=210900, name=阜新市), City(citycode=211000, name=辽阳市), City(citycode=211100, name=盘锦市), City(citycode=211200, name=铁岭市), City(citycode=211300, name=朝阳市), City(citycode=211400, name=葫芦岛市)]), 510000=Province(proadcode=510000, name=四川省, cities=[City(citycode=510100, name=成都市), City(citycode=510300, name=自贡市), City(citycode=510400, name=攀枝花市), City(citycode=510500, name=泸州市), City(citycode=510600, name=德阳市), City(citycode=510700, name=绵阳市), City(citycode=510800, name=广元市), City(citycode=510900, name=遂宁市), City(citycode=511000, name=内江市), City(citycode=511100, name=乐山市), City(citycode=511300, name=南充市), City(citycode=511400, name=眉山市), City(citycode=511500, name=宜宾市), City(citycode=511600, name=广安市), City(citycode=511700, name=达州市), City(citycode=511800, name=雅安市), City(citycode=511900, name=巴中市), City(citycode=512000, name=资阳市), City(citycode=513200, name=阿坝藏族羌族自治州), City(citycode=513300, name=甘孜藏族自治州), City(citycode=513400, name=凉山彝族自治州)]), 640000=Province(proadcode=640000, name=宁夏回族自治区, cities=[City(citycode=640100, name=银川市), City(citycode=640200, name=石嘴山市), City(citycode=640300, name=吴忠市), City(citycode=640400, name=固原市), City(citycode=640500, name=中卫市)]), 220000=Province(proadcode=220000, name=吉林省, cities=[City(citycode=220100, name=长春市), City(citycode=220200, name=吉林市), City(citycode=220300, name=四平市), City(citycode=220400, name=辽源市), City(citycode=220500, name=通化市), City(citycode=220600, name=白山市), City(citycode=220700, name=松原市), City(citycode=220800, name=白城市), City(citycode=222400, name=延边朝鲜族自治州)]), 350000=Province(proadcode=350000, name=福建省, cities=[City(citycode=350100, name=福州市), City(citycode=350200, name=厦门市), City(citycode=350300, name=莆田市), City(citycode=350400, name=三明市), City(citycode=350500, name=泉州市), City(citycode=350600, name=漳州市), City(citycode=350700, name=南平市), City(citycode=350800, name=龙岩市), City(citycode=350900, name=宁德市)]), 420000=Province(proadcode=420000, name=湖北省, cities=[City(citycode=420100, name=武汉市), City(citycode=420200, name=黄石市), City(citycode=420300, name=十堰市), City(citycode=420500, name=宜昌市), City(citycode=420600, name=襄阳市), City(citycode=420700, name=鄂州市), City(citycode=420800, name=荆门市), City(citycode=420900, name=孝感市), City(citycode=421000, name=荆州市), City(citycode=421100, name=黄冈市), City(citycode=421200, name=咸宁市), City(citycode=421300, name=随州市), City(citycode=422800, name=恩施土家族苗族自治州)]), 440000=Province(proadcode=440000, name=广东省, cities=[City(citycode=440100, name=广州市), City(citycode=440200, name=韶关市), City(citycode=440300, name=深圳市), City(citycode=440400, name=珠海市), City(citycode=440500, name=汕头市), City(citycode=440600, name=佛山市), City(citycode=440700, name=江门市), City(citycode=440800, name=湛江市), City(citycode=440900, name=茂名市), City(citycode=441200, name=肇庆市), City(citycode=441300, name=惠州市), City(citycode=441400, name=梅州市), City(citycode=441500, name=汕尾市), City(citycode=441600, name=河源市), City(citycode=441700, name=阳江市), City(citycode=441800, name=清远市), City(citycode=441900, name=东莞市), City(citycode=442000, name=中山市), City(citycode=445100, name=潮州市), City(citycode=445200, name=揭阳市), City(citycode=445300, name=云浮市)]), 500000=Province(proadcode=500000, name=重庆市, cities=[City(citycode=500000, name=重庆市)]), 140000=Province(proadcode=140000, name=山西省, cities=[City(citycode=140100, name=太原市), City(citycode=140200, name=大同市), City(citycode=140300, name=阳泉市), City(citycode=140400, name=长治市), City(citycode=140500, name=晋城市), City(citycode=140600, name=朔州市), City(citycode=140700, name=晋中市), City(citycode=140800, name=运城市), City(citycode=140900, name=忻州市), City(citycode=141000, name=临汾市), City(citycode=141100, name=吕梁市)]), 360000=Province(proadcode=360000, name=江西省, cities=[City(citycode=360100, name=南昌市), City(citycode=360200, name=景德镇市), City(citycode=360300, name=萍乡市), City(citycode=360400, name=九江市), City(citycode=360500, name=新余市), City(citycode=360600, name=鹰潭市), City(citycode=360700, name=赣州市), City(citycode=360800, name=吉安市), City(citycode=360900, name=宜春市), City(citycode=361000, name=抚州市), City(citycode=361100, name=上饶市)]), 230000=Province(proadcode=230000, name=黑龙江省, cities=[City(citycode=230100, name=哈尔滨市), City(citycode=230200, name=齐齐哈尔市), City(citycode=230300, name=鸡西市), City(citycode=230400, name=鹤岗市), City(citycode=230500, name=双鸭山市), City(citycode=230600, name=大庆市), City(citycode=230700, name=伊春市), City(citycode=230800, name=佳木斯市), City(citycode=230900, name=七台河市), City(citycode=231000, name=牡丹江市), City(citycode=231100, name=黑河市), City(citycode=231200, name=绥化市), City(citycode=232700, name=大兴安岭地区)]), 630000=Province(proadcode=630000, name=青海省, cities=[City(citycode=630100, name=西宁市), City(citycode=630200, name=海东市), City(citycode=632200, name=海北藏族自治州), City(citycode=632300, name=黄南藏族自治州), City(citycode=632500, name=海南藏族自治州), City(citycode=632600, name=果洛藏族自治州), City(citycode=632700, name=玉树藏族自治州), City(citycode=632800, name=海西蒙古族藏族自治州)]), 410000=Province(proadcode=410000, name=河南省, cities=[City(citycode=410100, name=郑州市), City(citycode=410200, name=开封市), City(citycode=410300, name=洛阳市), City(citycode=410400, name=平顶山市), City(citycode=410500, name=安阳市), City(citycode=410600, name=鹤壁市), City(citycode=410700, name=新乡市), City(citycode=410800, name=焦作市), City(citycode=410900, name=濮阳市), City(citycode=411000, name=许昌市), City(citycode=411100, name=漯河市), City(citycode=411200, name=三门峡市), City(citycode=411300, name=南阳市), City(citycode=411400, name=商丘市), City(citycode=411500, name=信阳市), City(citycode=411600, name=周口市), City(citycode=411700, name=驻马店市)]), 710000=Province(proadcode=710000, name=台湾省, cities=[City(citycode=710000, name=台湾省)]), 150000=Province(proadcode=150000, name=内蒙古自治区, cities=[City(citycode=150100, name=呼和浩特市), City(citycode=150200, name=包头市), City(citycode=150300, name=乌海市), City(citycode=150400, name=赤峰市), City(citycode=150500, name=通辽市), City(citycode=150600, name=鄂尔多斯市), City(citycode=150700, name=呼伦贝尔市), City(citycode=150800, name=巴彦淖尔市), City(citycode=150900, name=乌兰察布市), City(citycode=152200, name=兴安盟), City(citycode=152500, name=锡林郭勒盟), City(citycode=152900, name=阿拉善盟)]), 540000=Province(proadcode=540000, name=西藏自治区, cities=[City(citycode=540100, name=拉萨市), City(citycode=540200, name=日喀则市), City(citycode=540300, name=昌都市), City(citycode=540400, name=林芝市), City(citycode=540500, name=山南市), City(citycode=540600, name=那曲市), City(citycode=542500, name=阿里地区)]), 450000=Province(proadcode=450000, name=广西壮族自治区, cities=[City(citycode=450100, name=南宁市), City(citycode=450200, name=柳州市), City(citycode=450300, name=桂林市), City(citycode=450400, name=梧州市), City(citycode=450500, name=北海市), City(citycode=450600, name=防城港市), City(citycode=450700, name=钦州市), City(citycode=450800, name=贵港市), City(citycode=450900, name=玉林市), City(citycode=451000, name=百色市), City(citycode=451100, name=贺州市), City(citycode=451200, name=河池市), City(citycode=451300, name=来宾市), City(citycode=451400, name=崇左市)])}
22:30:51.621 [main] INFO TestCityProvinceMap - 省: 34 [110000, 120000, 130000, 140000, 150000, 210000, 220000, 230000, 310000, 320000, 330000, 340000, 350000, 360000, 370000, 410000, 420000, 430000, 440000, 450000, 460000, 500000, 510000, 520000, 530000, 540000, 610000, 620000, 630000, 640000, 650000, 710000, 810000, 820000]
22:30:51.623 [main] INFO TestCityProvinceMap - 市: 340 [City(citycode=110000, name=北京市), City(citycode=120000, name=天津市), City(citycode=130100, name=石家庄市), City(citycode=130200, name=唐山市), City(citycode=130300, name=秦皇岛市), City(citycode=130400, name=邯郸市), City(citycode=130500, name=邢台市), City(citycode=130600, name=保定市), City(citycode=130700, name=张家口市), City(citycode=130800, name=承德市), City(citycode=130900, name=沧州市), City(citycode=131000, name=廊坊市), City(citycode=131100, name=衡水市), City(citycode=140100, name=太原市), City(citycode=140200, name=大同市), City(citycode=140300, name=阳泉市), City(citycode=140400, name=长治市), City(citycode=140500, name=晋城市), City(citycode=140600, name=朔州市), City(citycode=140700, name=晋中市), City(citycode=140800, name=运城市), City(citycode=140900, name=忻州市), City(citycode=141000, name=临汾市), City(citycode=141100, name=吕梁市), City(citycode=150100, name=呼和浩特市), City(citycode=150200, name=包头市), City(citycode=150300, name=乌海市), City(citycode=150400, name=赤峰市), City(citycode=150500, name=通辽市), City(citycode=150600, name=鄂尔多斯市), City(citycode=150700, name=呼伦贝尔市), City(citycode=150800, name=巴彦淖尔市), City(citycode=150900, name=乌兰察布市), City(citycode=152200, name=兴安盟), City(citycode=152500, name=锡林郭勒盟), City(citycode=152900, name=阿拉善盟), City(citycode=210100, name=沈阳市), City(citycode=210200, name=大连市), City(citycode=210300, name=鞍山市), City(citycode=210400, name=抚顺市), City(citycode=210500, name=本溪市), City(citycode=210600, name=丹东市), City(citycode=210700, name=锦州市), City(citycode=210800, name=营口市), City(citycode=210900, name=阜新市), City(citycode=211000, name=辽阳市), City(citycode=211100, name=盘锦市), City(citycode=211200, name=铁岭市), City(citycode=211300, name=朝阳市), City(citycode=211400, name=葫芦岛市), City(citycode=220100, name=长春市), City(citycode=220200, name=吉林市), City(citycode=220300, name=四平市), City(citycode=220400, name=辽源市), City(citycode=220500, name=通化市), City(citycode=220600, name=白山市), City(citycode=220700, name=松原市), City(citycode=220800, name=白城市), City(citycode=222400, name=延边朝鲜族自治州), City(citycode=230100, name=哈尔滨市), City(citycode=230200, name=齐齐哈尔市), City(citycode=230300, name=鸡西市), City(citycode=230400, name=鹤岗市), City(citycode=230500, name=双鸭山市), City(citycode=230600, name=大庆市), City(citycode=230700, name=伊春市), City(citycode=230800, name=佳木斯市), City(citycode=230900, name=七台河市), City(citycode=231000, name=牡丹江市), City(citycode=231100, name=黑河市), City(citycode=231200, name=绥化市), City(citycode=232700, name=大兴安岭地区), City(citycode=310000, name=上海市), City(citycode=320100, name=南京市), City(citycode=320200, name=无锡市), City(citycode=320300, name=徐州市), City(citycode=320400, name=常州市), City(citycode=320500, name=苏州市), City(citycode=320600, name=南通市), City(citycode=320700, name=连云港市), City(citycode=320800, name=淮安市), City(citycode=320900, name=盐城市), City(citycode=321000, name=扬州市), City(citycode=321100, name=镇江市), City(citycode=321200, name=泰州市), City(citycode=321300, name=宿迁市), City(citycode=330100, name=杭州市), City(citycode=330200, name=宁波市), City(citycode=330300, name=温州市), City(citycode=330400, name=嘉兴市), City(citycode=330500, name=湖州市), City(citycode=330600, name=绍兴市), City(citycode=330700, name=金华市), City(citycode=330800, name=衢州市), City(citycode=330900, name=舟山市), City(citycode=331000, name=台州市), City(citycode=331100, name=丽水市), City(citycode=340100, name=合肥市), City(citycode=340200, name=芜湖市), City(citycode=340300, name=蚌埠市), City(citycode=340400, name=淮南市), City(citycode=340500, name=马鞍山市), City(citycode=340600, name=淮北市), City(citycode=340700, name=铜陵市), City(citycode=340800, name=安庆市), City(citycode=341000, name=黄山市), City(citycode=341100, name=滁州市), City(citycode=341200, name=阜阳市), City(citycode=341300, name=宿州市), City(citycode=341500, name=六安市), City(citycode=341600, name=亳州市), City(citycode=341700, name=池州市), City(citycode=341800, name=宣城市), City(citycode=350100, name=福州市), City(citycode=350200, name=厦门市), City(citycode=350300, name=莆田市), City(citycode=350400, name=三明市), City(citycode=350500, name=泉州市), City(citycode=350600, name=漳州市), City(citycode=350700, name=南平市), City(citycode=350800, name=龙岩市), City(citycode=350900, name=宁德市), City(citycode=360100, name=南昌市), City(citycode=360200, name=景德镇市), City(citycode=360300, name=萍乡市), City(citycode=360400, name=九江市), City(citycode=360500, name=新余市), City(citycode=360600, name=鹰潭市), City(citycode=360700, name=赣州市), City(citycode=360800, name=吉安市), City(citycode=360900, name=宜春市), City(citycode=361000, name=抚州市), City(citycode=361100, name=上饶市), City(citycode=370100, name=济南市), City(citycode=370200, name=青岛市), City(citycode=370300, name=淄博市), City(citycode=370400, name=枣庄市), City(citycode=370500, name=东营市), City(citycode=370600, name=烟台市), City(citycode=370700, name=潍坊市), City(citycode=370800, name=济宁市), City(citycode=370900, name=泰安市), City(citycode=371000, name=威海市), City(citycode=371100, name=日照市), City(citycode=371300, name=临沂市), City(citycode=371400, name=德州市), City(citycode=371500, name=聊城市), City(citycode=371600, name=滨州市), City(citycode=371700, name=菏泽市), City(citycode=410100, name=郑州市), City(citycode=410200, name=开封市), City(citycode=410300, name=洛阳市), City(citycode=410400, name=平顶山市), City(citycode=410500, name=安阳市), City(citycode=410600, name=鹤壁市), City(citycode=410700, name=新乡市), City(citycode=410800, name=焦作市), City(citycode=410900, name=濮阳市), City(citycode=411000, name=许昌市), City(citycode=411100, name=漯河市), City(citycode=411200, name=三门峡市), City(citycode=411300, name=南阳市), City(citycode=411400, name=商丘市), City(citycode=411500, name=信阳市), City(citycode=411600, name=周口市), City(citycode=411700, name=驻马店市), City(citycode=420100, name=武汉市), City(citycode=420200, name=黄石市), City(citycode=420300, name=十堰市), City(citycode=420500, name=宜昌市), City(citycode=420600, name=襄阳市), City(citycode=420700, name=鄂州市), City(citycode=420800, name=荆门市), City(citycode=420900, name=孝感市), City(citycode=421000, name=荆州市), City(citycode=421100, name=黄冈市), City(citycode=421200, name=咸宁市), City(citycode=421300, name=随州市), City(citycode=422800, name=恩施土家族苗族自治州), City(citycode=430100, name=长沙市), City(citycode=430200, name=株洲市), City(citycode=430300, name=湘潭市), City(citycode=430400, name=衡阳市), City(citycode=430500, name=邵阳市), City(citycode=430600, name=岳阳市), City(citycode=430700, name=常德市), City(citycode=430800, name=张家界市), City(citycode=430900, name=益阳市), City(citycode=431000, name=郴州市), City(citycode=431100, name=永州市), City(citycode=431200, name=怀化市), City(citycode=431300, name=娄底市), City(citycode=433100, name=湘西土家族苗族自治州), City(citycode=440100, name=广州市), City(citycode=440200, name=韶关市), City(citycode=440300, name=深圳市), City(citycode=440400, name=珠海市), City(citycode=440500, name=汕头市), City(citycode=440600, name=佛山市), City(citycode=440700, name=江门市), City(citycode=440800, name=湛江市), City(citycode=440900, name=茂名市), City(citycode=441200, name=肇庆市), City(citycode=441300, name=惠州市), City(citycode=441400, name=梅州市), City(citycode=441500, name=汕尾市), City(citycode=441600, name=河源市), City(citycode=441700, name=阳江市), City(citycode=441800, name=清远市), City(citycode=441900, name=东莞市), City(citycode=442000, name=中山市), City(citycode=445100, name=潮州市), City(citycode=445200, name=揭阳市), City(citycode=445300, name=云浮市), City(citycode=450100, name=南宁市), City(citycode=450200, name=柳州市), City(citycode=450300, name=桂林市), City(citycode=450400, name=梧州市), City(citycode=450500, name=北海市), City(citycode=450600, name=防城港市), City(citycode=450700, name=钦州市), City(citycode=450800, name=贵港市), City(citycode=450900, name=玉林市), City(citycode=451000, name=百色市), City(citycode=451100, name=贺州市), City(citycode=451200, name=河池市), City(citycode=451300, name=来宾市), City(citycode=451400, name=崇左市), City(citycode=460100, name=海口市), City(citycode=460200, name=三亚市), City(citycode=460300, name=三沙市), City(citycode=460400, name=儋州市), City(citycode=500000, name=重庆市), City(citycode=510100, name=成都市), City(citycode=510300, name=自贡市), City(citycode=510400, name=攀枝花市), City(citycode=510500, name=泸州市), City(citycode=510600, name=德阳市), City(citycode=510700, name=绵阳市), City(citycode=510800, name=广元市), City(citycode=510900, name=遂宁市), City(citycode=511000, name=内江市), City(citycode=511100, name=乐山市), City(citycode=511300, name=南充市), City(citycode=511400, name=眉山市), City(citycode=511500, name=宜宾市), City(citycode=511600, name=广安市), City(citycode=511700, name=达州市), City(citycode=511800, name=雅安市), City(citycode=511900, name=巴中市), City(citycode=512000, name=资阳市), City(citycode=513200, name=阿坝藏族羌族自治州), City(citycode=513300, name=甘孜藏族自治州), City(citycode=513400, name=凉山彝族自治州), City(citycode=520100, name=贵阳市), City(citycode=520200, name=六盘水市), City(citycode=520300, name=遵义市), City(citycode=520400, name=安顺市), City(citycode=520500, name=毕节市), City(citycode=520600, name=铜仁市), City(citycode=522300, name=黔西南布依族苗族自治州), City(citycode=522600, name=黔东南苗族侗族自治州), City(citycode=522700, name=黔南布依族苗族自治州), City(citycode=530100, name=昆明市), City(citycode=530300, name=曲靖市), City(citycode=530400, name=玉溪市), City(citycode=530500, name=保山市), City(citycode=530600, name=昭通市), City(citycode=530700, name=丽江市), City(citycode=530800, name=普洱市), City(citycode=530900, name=临沧市), City(citycode=532300, name=楚雄彝族自治州), City(citycode=532500, name=红河哈尼族彝族自治州), City(citycode=532600, name=文山壮族苗族自治州), City(citycode=532800, name=西双版纳傣族自治州), City(citycode=532900, name=大理白族自治州), City(citycode=533100, name=德宏傣族景颇族自治州), City(citycode=533300, name=怒江傈僳族自治州), City(citycode=533400, name=迪庆藏族自治州), City(citycode=540100, name=拉萨市), City(citycode=540200, name=日喀则市), City(citycode=540300, name=昌都市), City(citycode=540400, name=林芝市), City(citycode=540500, name=山南市), City(citycode=540600, name=那曲市), City(citycode=542500, name=阿里地区), City(citycode=610100, name=西安市), City(citycode=610200, name=铜川市), City(citycode=610300, name=宝鸡市), City(citycode=610400, name=咸阳市), City(citycode=610500, name=渭南市), City(citycode=610600, name=延安市), City(citycode=610700, name=汉中市), City(citycode=610800, name=榆林市), City(citycode=610900, name=安康市), City(citycode=611000, name=商洛市), City(citycode=620100, name=兰州市), City(citycode=620200, name=嘉峪关市), City(citycode=620300, name=金昌市), City(citycode=620400, name=白银市), City(citycode=620500, name=天水市), City(citycode=620600, name=武威市), City(citycode=620700, name=张掖市), City(citycode=620800, name=平凉市), City(citycode=620900, name=酒泉市), City(citycode=621000, name=庆阳市), City(citycode=621100, name=定西市), City(citycode=621200, name=陇南市), City(citycode=622900, name=临夏回族自治州), City(citycode=623000, name=甘南藏族自治州), City(citycode=630100, name=西宁市), City(citycode=630200, name=海东市), City(citycode=632200, name=海北藏族自治州), City(citycode=632300, name=黄南藏族自治州), City(citycode=632500, name=海南藏族自治州), City(citycode=632600, name=果洛藏族自治州), City(citycode=632700, name=玉树藏族自治州), City(citycode=632800, name=海西蒙古族藏族自治州), City(citycode=640100, name=银川市), City(citycode=640200, name=石嘴山市), City(citycode=640300, name=吴忠市), City(citycode=640400, name=固原市), City(citycode=640500, name=中卫市), City(citycode=650100, name=乌鲁木齐市), City(citycode=650200, name=克拉玛依市), City(citycode=650400, name=吐鲁番市), City(citycode=650500, name=哈密市), City(citycode=652300, name=昌吉回族自治州), City(citycode=652700, name=博尔塔拉蒙古自治州), City(citycode=652800, name=巴音郭楞蒙古自治州), City(citycode=652900, name=阿克苏地区), City(citycode=653000, name=克孜勒苏柯尔克孜自治州), City(citycode=653100, name=喀什地区), City(citycode=653200, name=和田地区), City(citycode=654000, name=伊犁哈萨克自治州), City(citycode=654200, name=塔城地区), City(citycode=654300, name=阿勒泰地区), City(citycode=710000, name=台湾省), City(citycode=810000, name=香港特别行政区), City(citycode=820000, name=澳门特别行政区)]

2.源码

2.1 Java CSV文件读取、写入及追加工具类

2.2 TestCityProvinceMap.java

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.reflect.TypeToken;
import com.utils.CSVUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/*************************************
 *Class Name: TestCityProvinceMap
 *Description: <读取城市省份map>  adcode共6位,前俩位省/直辖市/自治区,前4位城市,6位区县等;
 *@author: Seminar
 *@create: 2022/10/18
 *@since 1.0.0
 *************************************/
@Slf4j
public class TestCityProvinceMap {

    private static Map<String, String> cityMap = new HashMap<>(); // 城市map code4位
    private static Map<String, String> provinceMap = new HashMap<>();// 省份map code俩位

    @Test
    public void testCityProvinceMap() {
        cityMap = initCityProvinceMap(cityMap);
        Map<String, String> finalCityMap = cityMap;
        System.out.println("provinceMap");
        provinceMap.keySet().stream().sorted().forEach(x -> {
            System.out.println(x + "=" + provinceMap.get(x));
        });
        System.out.println("cityMap");
        cityMap.keySet().stream().sorted().forEach(x -> {
            System.out.println(x + "=" + finalCityMap.get(x));
        });
    }

    private Map<String, String> initCityProvinceMap(Map<String, String> cityMap) {
        List<String> stringList = CSVUtil.importCsv(new File(System.getProperty("user.dir") + File.separator + "city.txt"));

        if (stringList.isEmpty()) return cityMap;
        stringList.subList(1, stringList.size()).stream().forEach(x -> {
            if (x.contains("省") || x.contains("0000")) {
                provinceMap.put(x.split(",")[0].substring(0, 2), x.split(",")[1]);
                cityMap.put(x.split(",")[0].substring(0, 4), x.split(",")[1]);// 既是省/直辖市/自治区
            } else if (x.contains("00,")) { // 市
                cityMap.put(x.split(",")[0].substring(0, 4), x.split(",")[1]);
                cityMap.put(x.split(",")[0], x.split(",")[1]);
            } /*else { // 区/县
                cityMap.put(x.split(",")[0], x.split(",")[1]);
            }*/
        });
        log.info("provinceMap: {} {}", provinceMap.size(), provinceMap);
        log.info("cityMap: {} {}", cityMap.size(), cityMap);
        return cityMap;
    }

    @Test
    public void getCityJs() {
        List<String> stringList = CSVUtil.importCsv(new File(System.getProperty("user.dir") + File.separator + "city.txt"));

        if (stringList.isEmpty()) return;
        Map<String, Province> map = new HashMap<>();
        stringList.subList(1, stringList.size()).stream().forEach(x -> {
            if (x.contains("省") || x.contains("0000")) {
                Province province = Province.builder()
                        .proadcode(x.split(",")[0])
                        .name(x.split(",")[1])
                        .cities(new ArrayList<>()).build();
                map.put(x.split(",")[0], province);
            } else if (x.contains("00,")) { // 市
                String procode = x.split(",")[0].substring(0, 2) + "0000";
                City city = City.builder()
                        .citycode(x.split(",")[0])
                        .name(x.split(",")[1])
                        .build();
                if (!map.containsKey(procode)) {
                    Province province = Province.builder()
                            .proadcode(x.split(",")[0])
                            .name(x.split(",")[1])
                            .cities(new ArrayList<>()).build();
                    map.put(procode, province);
                }
                map.get(procode).getCities().add(city);
            } /*else { // 区/县

            }*/
        });

        // 判断类似北京市,既是市,又是省,则初始化市
        map.entrySet().forEach(x -> {
            City city = City.builder()
                    .citycode(x.getKey())
                    .name(x.getValue().getName())
                    .build();
            if (x.getValue().getCities().isEmpty()) {
                x.getValue().getCities().add(city);
            }
        });

        log.info("map: {} {}", map.size(), map);
        log.info("省: {} {}", map.size(), map.keySet().stream().sorted().collect(Collectors.toList()));
        log.info("市: {} {}", map.values().stream().flatMap(x -> x.getCities().stream()).collect(Collectors.toList()).size(),
                map.values().stream().flatMap(x -> x.getCities().stream()).sorted(City::getCityCode).collect(Collectors.toList()));

        JSONArray jsonArray = new JSONArray();
        map.keySet().stream().sorted().forEach(x -> {
            JSONObject object = (JSONObject) JSON.parse(JSON.toJSONString(map.get(x)));
            jsonArray.add(object);
        });

        // List<Object>多层 转 jsonArray
//        JSONArray new_jsonArray = JSONArray.parseArray(JSON.toJSONString(new ArrayList<>(map.values())));
//        log.info("{} {}", JSON.toJSONString(new_jsonArray), new_jsonArray.toString());

        List<String> str = new ArrayList<>();
        str.add("const CITY_LIST =");
        str.add(jsonArray.toString());
        str.add("export default CITY_LIST;");
        CSVUtil.exportCsv(System.getProperty("user.dir") + File.separator + "city.js", str);

        // 优雅输出树形的json
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        JsonElement element = gson.toJsonTree(new ArrayList<>(map.values().stream().sorted(Province::getProadcode).collect(Collectors.toList())), new TypeToken<List<Province>>() {
        }.getType());
        JsonArray gsonArray = element.getAsJsonArray();
        String json = gson.toJson(gsonArray.get(0));
        log.info("gracefulPrint: Object {}", json);
        log.info("gracefulPrint: JsonArray {}", gson.toJson(element));

        str.clear();
        str.add("\n\nconst CITY_LIST =");
        str.add(gsonArray.toString());
        str.add("export default CITY_LIST;");
        CSVUtil.exportCsv(System.getProperty("user.dir") + File.separator + "city.js", str);
    }
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
class City {
    private String citycode;
    private String name;

    public static int getCityCode(City o1, City o2) {
        return o1.citycode.compareTo(o2.citycode);
    }
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
class Province {
    private String proadcode;
    private String name;
    private List<City> cities;

    public static int getProadcode(Province o1, Province o2) {
        return o1.proadcode.compareTo(o2.proadcode);
    }
}

3. Json 省/市 俩层结构

[
  {
    "proadcode": "110000",
    "name": "北京市",
    "cities": [
      {
        "citycode": "110000",
        "name": "北京市"
      }
    ]
  },
  {
    "proadcode": "120000",
    "name": "天津市",
    "cities": [
      {
        "citycode": "120000",
        "name": "天津市"
      }
    ]
  },
  {
    "proadcode": "130000",
    "name": "河北省",
    "cities": [
      {
        "citycode": "130100",
        "name": "石家庄市"
      },
      {
        "citycode": "130200",
        "name": "唐山市"
      },
      {
        "citycode": "130300",
        "name": "秦皇岛市"
      },
      {
        "citycode": "130400",
        "name": "邯郸市"
      },
      {
        "citycode": "130500",
        "name": "邢台市"
      },
      {
        "citycode": "130600",
        "name": "保定市"
      },
      {
        "citycode": "130700",
        "name": "张家口市"
      },
      {
        "citycode": "130800",
        "name": "承德市"
      },
      {
        "citycode": "130900",
        "name": "沧州市"
      },
      {
        "citycode": "131000",
        "name": "廊坊市"
      },
      {
        "citycode": "131100",
        "name": "衡水市"
      }
    ]
  },
  {
    "proadcode": "140000",
    "name": "山西省",
    "cities": [
      {
        "citycode": "140100",
        "name": "太原市"
      },
      {
        "citycode": "140200",
        "name": "大同市"
      },
      {
        "citycode": "140300",
        "name": "阳泉市"
      },
      {
        "citycode": "140400",
        "name": "长治市"
      },
      {
        "citycode": "140500",
        "name": "晋城市"
      },
      {
        "citycode": "140600",
        "name": "朔州市"
      },
      {
        "citycode": "140700",
        "name": "晋中市"
      },
      {
        "citycode": "140800",
        "name": "运城市"
      },
      {
        "citycode": "140900",
        "name": "忻州市"
      },
      {
        "citycode": "141000",
        "name": "临汾市"
      },
      {
        "citycode": "141100",
        "name": "吕梁市"
      }
    ]
  },
  {
    "proadcode": "150000",
    "name": "内蒙古自治区",
    "cities": [
      {
        "citycode": "150100",
        "name": "呼和浩特市"
      },
      {
        "citycode": "150200",
        "name": "包头市"
      },
      {
        "citycode": "150300",
        "name": "乌海市"
      },
      {
        "citycode": "150400",
        "name": "赤峰市"
      },
      {
        "citycode": "150500",
        "name": "通辽市"
      },
      {
        "citycode": "150600",
        "name": "鄂尔多斯市"
      },
      {
        "citycode": "150700",
        "name": "呼伦贝尔市"
      },
      {
        "citycode": "150800",
        "name": "巴彦淖尔市"
      },
      {
        "citycode": "150900",
        "name": "乌兰察布市"
      },
      {
        "citycode": "152200",
        "name": "兴安盟"
      },
      {
        "citycode": "152500",
        "name": "锡林郭勒盟"
      },
      {
        "citycode": "152900",
        "name": "阿拉善盟"
      }
    ]
  },
  {
    "proadcode": "210000",
    "name": "辽宁省",
    "cities": [
      {
        "citycode": "210100",
        "name": "沈阳市"
      },
      {
        "citycode": "210200",
        "name": "大连市"
      },
      {
        "citycode": "210300",
        "name": "鞍山市"
      },
      {
        "citycode": "210400",
        "name": "抚顺市"
      },
      {
        "citycode": "210500",
        "name": "本溪市"
      },
      {
        "citycode": "210600",
        "name": "丹东市"
      },
      {
        "citycode": "210700",
        "name": "锦州市"
      },
      {
        "citycode": "210800",
        "name": "营口市"
      },
      {
        "citycode": "210900",
        "name": "阜新市"
      },
      {
        "citycode": "211000",
        "name": "辽阳市"
      },
      {
        "citycode": "211100",
        "name": "盘锦市"
      },
      {
        "citycode": "211200",
        "name": "铁岭市"
      },
      {
        "citycode": "211300",
        "name": "朝阳市"
      },
      {
        "citycode": "211400",
        "name": "葫芦岛市"
      }
    ]
  },
  {
    "proadcode": "220000",
    "name": "吉林省",
    "cities": [
      {
        "citycode": "220100",
        "name": "长春市"
      },
      {
        "citycode": "220200",
        "name": "吉林市"
      },
      {
        "citycode": "220300",
        "name": "四平市"
      },
      {
        "citycode": "220400",
        "name": "辽源市"
      },
      {
        "citycode": "220500",
        "name": "通化市"
      },
      {
        "citycode": "220600",
        "name": "白山市"
      },
      {
        "citycode": "220700",
        "name": "松原市"
      },
      {
        "citycode": "220800",
        "name": "白城市"
      },
      {
        "citycode": "222400",
        "name": "延边朝鲜族自治州"
      }
    ]
  },
  {
    "proadcode": "230000",
    "name": "黑龙江省",
    "cities": [
      {
        "citycode": "230100",
        "name": "哈尔滨市"
      },
      {
        "citycode": "230200",
        "name": "齐齐哈尔市"
      },
      {
        "citycode": "230300",
        "name": "鸡西市"
      },
      {
        "citycode": "230400",
        "name": "鹤岗市"
      },
      {
        "citycode": "230500",
        "name": "双鸭山市"
      },
      {
        "citycode": "230600",
        "name": "大庆市"
      },
      {
        "citycode": "230700",
        "name": "伊春市"
      },
      {
        "citycode": "230800",
        "name": "佳木斯市"
      },
      {
        "citycode": "230900",
        "name": "七台河市"
      },
      {
        "citycode": "231000",
        "name": "牡丹江市"
      },
      {
        "citycode": "231100",
        "name": "黑河市"
      },
      {
        "citycode": "231200",
        "name": "绥化市"
      },
      {
        "citycode": "232700",
        "name": "大兴安岭地区"
      }
    ]
  },
  {
    "proadcode": "310000",
    "name": "上海市",
    "cities": [
      {
        "citycode": "310000",
        "name": "上海市"
      }
    ]
  },
  {
    "proadcode": "320000",
    "name": "江苏省",
    "cities": [
      {
        "citycode": "320100",
        "name": "南京市"
      },
      {
        "citycode": "320200",
        "name": "无锡市"
      },
      {
        "citycode": "320300",
        "name": "徐州市"
      },
      {
        "citycode": "320400",
        "name": "常州市"
      },
      {
        "citycode": "320500",
        "name": "苏州市"
      },
      {
        "citycode": "320600",
        "name": "南通市"
      },
      {
        "citycode": "320700",
        "name": "连云港市"
      },
      {
        "citycode": "320800",
        "name": "淮安市"
      },
      {
        "citycode": "320900",
        "name": "盐城市"
      },
      {
        "citycode": "321000",
        "name": "扬州市"
      },
      {
        "citycode": "321100",
        "name": "镇江市"
      },
      {
        "citycode": "321200",
        "name": "泰州市"
      },
      {
        "citycode": "321300",
        "name": "宿迁市"
      }
    ]
  },
  {
    "proadcode": "330000",
    "name": "浙江省",
    "cities": [
      {
        "citycode": "330100",
        "name": "杭州市"
      },
      {
        "citycode": "330200",
        "name": "宁波市"
      },
      {
        "citycode": "330300",
        "name": "温州市"
      },
      {
        "citycode": "330400",
        "name": "嘉兴市"
      },
      {
        "citycode": "330500",
        "name": "湖州市"
      },
      {
        "citycode": "330600",
        "name": "绍兴市"
      },
      {
        "citycode": "330700",
        "name": "金华市"
      },
      {
        "citycode": "330800",
        "name": "衢州市"
      },
      {
        "citycode": "330900",
        "name": "舟山市"
      },
      {
        "citycode": "331000",
        "name": "台州市"
      },
      {
        "citycode": "331100",
        "name": "丽水市"
      }
    ]
  },
  {
    "proadcode": "340000",
    "name": "安徽省",
    "cities": [
      {
        "citycode": "340100",
        "name": "合肥市"
      },
      {
        "citycode": "340200",
        "name": "芜湖市"
      },
      {
        "citycode": "340300",
        "name": "蚌埠市"
      },
      {
        "citycode": "340400",
        "name": "淮南市"
      },
      {
        "citycode": "340500",
        "name": "马鞍山市"
      },
      {
        "citycode": "340600",
        "name": "淮北市"
      },
      {
        "citycode": "340700",
        "name": "铜陵市"
      },
      {
        "citycode": "340800",
        "name": "安庆市"
      },
      {
        "citycode": "341000",
        "name": "黄山市"
      },
      {
        "citycode": "341100",
        "name": "滁州市"
      },
      {
        "citycode": "341200",
        "name": "阜阳市"
      },
      {
        "citycode": "341300",
        "name": "宿州市"
      },
      {
        "citycode": "341500",
        "name": "六安市"
      },
      {
        "citycode": "341600",
        "name": "亳州市"
      },
      {
        "citycode": "341700",
        "name": "池州市"
      },
      {
        "citycode": "341800",
        "name": "宣城市"
      }
    ]
  },
  {
    "proadcode": "350000",
    "name": "福建省",
    "cities": [
      {
        "citycode": "350100",
        "name": "福州市"
      },
      {
        "citycode": "350200",
        "name": "厦门市"
      },
      {
        "citycode": "350300",
        "name": "莆田市"
      },
      {
        "citycode": "350400",
        "name": "三明市"
      },
      {
        "citycode": "350500",
        "name": "泉州市"
      },
      {
        "citycode": "350600",
        "name": "漳州市"
      },
      {
        "citycode": "350700",
        "name": "南平市"
      },
      {
        "citycode": "350800",
        "name": "龙岩市"
      },
      {
        "citycode": "350900",
        "name": "宁德市"
      }
    ]
  },
  {
    "proadcode": "360000",
    "name": "江西省",
    "cities": [
      {
        "citycode": "360100",
        "name": "南昌市"
      },
      {
        "citycode": "360200",
        "name": "景德镇市"
      },
      {
        "citycode": "360300",
        "name": "萍乡市"
      },
      {
        "citycode": "360400",
        "name": "九江市"
      },
      {
        "citycode": "360500",
        "name": "新余市"
      },
      {
        "citycode": "360600",
        "name": "鹰潭市"
      },
      {
        "citycode": "360700",
        "name": "赣州市"
      },
      {
        "citycode": "360800",
        "name": "吉安市"
      },
      {
        "citycode": "360900",
        "name": "宜春市"
      },
      {
        "citycode": "361000",
        "name": "抚州市"
      },
      {
        "citycode": "361100",
        "name": "上饶市"
      }
    ]
  },
  {
    "proadcode": "370000",
    "name": "山东省",
    "cities": [
      {
        "citycode": "370100",
        "name": "济南市"
      },
      {
        "citycode": "370200",
        "name": "青岛市"
      },
      {
        "citycode": "370300",
        "name": "淄博市"
      },
      {
        "citycode": "370400",
        "name": "枣庄市"
      },
      {
        "citycode": "370500",
        "name": "东营市"
      },
      {
        "citycode": "370600",
        "name": "烟台市"
      },
      {
        "citycode": "370700",
        "name": "潍坊市"
      },
      {
        "citycode": "370800",
        "name": "济宁市"
      },
      {
        "citycode": "370900",
        "name": "泰安市"
      },
      {
        "citycode": "371000",
        "name": "威海市"
      },
      {
        "citycode": "371100",
        "name": "日照市"
      },
      {
        "citycode": "371300",
        "name": "临沂市"
      },
      {
        "citycode": "371400",
        "name": "德州市"
      },
      {
        "citycode": "371500",
        "name": "聊城市"
      },
      {
        "citycode": "371600",
        "name": "滨州市"
      },
      {
        "citycode": "371700",
        "name": "菏泽市"
      }
    ]
  },
  {
    "proadcode": "410000",
    "name": "河南省",
    "cities": [
      {
        "citycode": "410100",
        "name": "郑州市"
      },
      {
        "citycode": "410200",
        "name": "开封市"
      },
      {
        "citycode": "410300",
        "name": "洛阳市"
      },
      {
        "citycode": "410400",
        "name": "平顶山市"
      },
      {
        "citycode": "410500",
        "name": "安阳市"
      },
      {
        "citycode": "410600",
        "name": "鹤壁市"
      },
      {
        "citycode": "410700",
        "name": "新乡市"
      },
      {
        "citycode": "410800",
        "name": "焦作市"
      },
      {
        "citycode": "410900",
        "name": "濮阳市"
      },
      {
        "citycode": "411000",
        "name": "许昌市"
      },
      {
        "citycode": "411100",
        "name": "漯河市"
      },
      {
        "citycode": "411200",
        "name": "三门峡市"
      },
      {
        "citycode": "411300",
        "name": "南阳市"
      },
      {
        "citycode": "411400",
        "name": "商丘市"
      },
      {
        "citycode": "411500",
        "name": "信阳市"
      },
      {
        "citycode": "411600",
        "name": "周口市"
      },
      {
        "citycode": "411700",
        "name": "驻马店市"
      }
    ]
  },
  {
    "proadcode": "420000",
    "name": "湖北省",
    "cities": [
      {
        "citycode": "420100",
        "name": "武汉市"
      },
      {
        "citycode": "420200",
        "name": "黄石市"
      },
      {
        "citycode": "420300",
        "name": "十堰市"
      },
      {
        "citycode": "420500",
        "name": "宜昌市"
      },
      {
        "citycode": "420600",
        "name": "襄阳市"
      },
      {
        "citycode": "420700",
        "name": "鄂州市"
      },
      {
        "citycode": "420800",
        "name": "荆门市"
      },
      {
        "citycode": "420900",
        "name": "孝感市"
      },
      {
        "citycode": "421000",
        "name": "荆州市"
      },
      {
        "citycode": "421100",
        "name": "黄冈市"
      },
      {
        "citycode": "421200",
        "name": "咸宁市"
      },
      {
        "citycode": "421300",
        "name": "随州市"
      },
      {
        "citycode": "422800",
        "name": "恩施土家族苗族自治州"
      }
    ]
  },
  {
    "proadcode": "430000",
    "name": "湖南省",
    "cities": [
      {
        "citycode": "430100",
        "name": "长沙市"
      },
      {
        "citycode": "430200",
        "name": "株洲市"
      },
      {
        "citycode": "430300",
        "name": "湘潭市"
      },
      {
        "citycode": "430400",
        "name": "衡阳市"
      },
      {
        "citycode": "430500",
        "name": "邵阳市"
      },
      {
        "citycode": "430600",
        "name": "岳阳市"
      },
      {
        "citycode": "430700",
        "name": "常德市"
      },
      {
        "citycode": "430800",
        "name": "张家界市"
      },
      {
        "citycode": "430900",
        "name": "益阳市"
      },
      {
        "citycode": "431000",
        "name": "郴州市"
      },
      {
        "citycode": "431100",
        "name": "永州市"
      },
      {
        "citycode": "431200",
        "name": "怀化市"
      },
      {
        "citycode": "431300",
        "name": "娄底市"
      },
      {
        "citycode": "433100",
        "name": "湘西土家族苗族自治州"
      }
    ]
  },
  {
    "proadcode": "440000",
    "name": "广东省",
    "cities": [
      {
        "citycode": "440100",
        "name": "广州市"
      },
      {
        "citycode": "440200",
        "name": "韶关市"
      },
      {
        "citycode": "440300",
        "name": "深圳市"
      },
      {
        "citycode": "440400",
        "name": "珠海市"
      },
      {
        "citycode": "440500",
        "name": "汕头市"
      },
      {
        "citycode": "440600",
        "name": "佛山市"
      },
      {
        "citycode": "440700",
        "name": "江门市"
      },
      {
        "citycode": "440800",
        "name": "湛江市"
      },
      {
        "citycode": "440900",
        "name": "茂名市"
      },
      {
        "citycode": "441200",
        "name": "肇庆市"
      },
      {
        "citycode": "441300",
        "name": "惠州市"
      },
      {
        "citycode": "441400",
        "name": "梅州市"
      },
      {
        "citycode": "441500",
        "name": "汕尾市"
      },
      {
        "citycode": "441600",
        "name": "河源市"
      },
      {
        "citycode": "441700",
        "name": "阳江市"
      },
      {
        "citycode": "441800",
        "name": "清远市"
      },
      {
        "citycode": "441900",
        "name": "东莞市"
      },
      {
        "citycode": "442000",
        "name": "中山市"
      },
      {
        "citycode": "445100",
        "name": "潮州市"
      },
      {
        "citycode": "445200",
        "name": "揭阳市"
      },
      {
        "citycode": "445300",
        "name": "云浮市"
      }
    ]
  },
  {
    "proadcode": "450000",
    "name": "广西壮族自治区",
    "cities": [
      {
        "citycode": "450100",
        "name": "南宁市"
      },
      {
        "citycode": "450200",
        "name": "柳州市"
      },
      {
        "citycode": "450300",
        "name": "桂林市"
      },
      {
        "citycode": "450400",
        "name": "梧州市"
      },
      {
        "citycode": "450500",
        "name": "北海市"
      },
      {
        "citycode": "450600",
        "name": "防城港市"
      },
      {
        "citycode": "450700",
        "name": "钦州市"
      },
      {
        "citycode": "450800",
        "name": "贵港市"
      },
      {
        "citycode": "450900",
        "name": "玉林市"
      },
      {
        "citycode": "451000",
        "name": "百色市"
      },
      {
        "citycode": "451100",
        "name": "贺州市"
      },
      {
        "citycode": "451200",
        "name": "河池市"
      },
      {
        "citycode": "451300",
        "name": "来宾市"
      },
      {
        "citycode": "451400",
        "name": "崇左市"
      }
    ]
  },
  {
    "proadcode": "460000",
    "name": "海南省",
    "cities": [
      {
        "citycode": "460100",
        "name": "海口市"
      },
      {
        "citycode": "460200",
        "name": "三亚市"
      },
      {
        "citycode": "460300",
        "name": "三沙市"
      },
      {
        "citycode": "460400",
        "name": "儋州市"
      }
    ]
  },
  {
    "proadcode": "500000",
    "name": "重庆市",
    "cities": [
      {
        "citycode": "500000",
        "name": "重庆市"
      }
    ]
  },
  {
    "proadcode": "510000",
    "name": "四川省",
    "cities": [
      {
        "citycode": "510100",
        "name": "成都市"
      },
      {
        "citycode": "510300",
        "name": "自贡市"
      },
      {
        "citycode": "510400",
        "name": "攀枝花市"
      },
      {
        "citycode": "510500",
        "name": "泸州市"
      },
      {
        "citycode": "510600",
        "name": "德阳市"
      },
      {
        "citycode": "510700",
        "name": "绵阳市"
      },
      {
        "citycode": "510800",
        "name": "广元市"
      },
      {
        "citycode": "510900",
        "name": "遂宁市"
      },
      {
        "citycode": "511000",
        "name": "内江市"
      },
      {
        "citycode": "511100",
        "name": "乐山市"
      },
      {
        "citycode": "511300",
        "name": "南充市"
      },
      {
        "citycode": "511400",
        "name": "眉山市"
      },
      {
        "citycode": "511500",
        "name": "宜宾市"
      },
      {
        "citycode": "511600",
        "name": "广安市"
      },
      {
        "citycode": "511700",
        "name": "达州市"
      },
      {
        "citycode": "511800",
        "name": "雅安市"
      },
      {
        "citycode": "511900",
        "name": "巴中市"
      },
      {
        "citycode": "512000",
        "name": "资阳市"
      },
      {
        "citycode": "513200",
        "name": "阿坝藏族羌族自治州"
      },
      {
        "citycode": "513300",
        "name": "甘孜藏族自治州"
      },
      {
        "citycode": "513400",
        "name": "凉山彝族自治州"
      }
    ]
  },
  {
    "proadcode": "520000",
    "name": "贵州省",
    "cities": [
      {
        "citycode": "520100",
        "name": "贵阳市"
      },
      {
        "citycode": "520200",
        "name": "六盘水市"
      },
      {
        "citycode": "520300",
        "name": "遵义市"
      },
      {
        "citycode": "520400",
        "name": "安顺市"
      },
      {
        "citycode": "520500",
        "name": "毕节市"
      },
      {
        "citycode": "520600",
        "name": "铜仁市"
      },
      {
        "citycode": "522300",
        "name": "黔西南布依族苗族自治州"
      },
      {
        "citycode": "522600",
        "name": "黔东南苗族侗族自治州"
      },
      {
        "citycode": "522700",
        "name": "黔南布依族苗族自治州"
      }
    ]
  },
  {
    "proadcode": "530000",
    "name": "云南省",
    "cities": [
      {
        "citycode": "530100",
        "name": "昆明市"
      },
      {
        "citycode": "530300",
        "name": "曲靖市"
      },
      {
        "citycode": "530400",
        "name": "玉溪市"
      },
      {
        "citycode": "530500",
        "name": "保山市"
      },
      {
        "citycode": "530600",
        "name": "昭通市"
      },
      {
        "citycode": "530700",
        "name": "丽江市"
      },
      {
        "citycode": "530800",
        "name": "普洱市"
      },
      {
        "citycode": "530900",
        "name": "临沧市"
      },
      {
        "citycode": "532300",
        "name": "楚雄彝族自治州"
      },
      {
        "citycode": "532500",
        "name": "红河哈尼族彝族自治州"
      },
      {
        "citycode": "532600",
        "name": "文山壮族苗族自治州"
      },
      {
        "citycode": "532800",
        "name": "西双版纳傣族自治州"
      },
      {
        "citycode": "532900",
        "name": "大理白族自治州"
      },
      {
        "citycode": "533100",
        "name": "德宏傣族景颇族自治州"
      },
      {
        "citycode": "533300",
        "name": "怒江傈僳族自治州"
      },
      {
        "citycode": "533400",
        "name": "迪庆藏族自治州"
      }
    ]
  },
  {
    "proadcode": "540000",
    "name": "西藏自治区",
    "cities": [
      {
        "citycode": "540100",
        "name": "拉萨市"
      },
      {
        "citycode": "540200",
        "name": "日喀则市"
      },
      {
        "citycode": "540300",
        "name": "昌都市"
      },
      {
        "citycode": "540400",
        "name": "林芝市"
      },
      {
        "citycode": "540500",
        "name": "山南市"
      },
      {
        "citycode": "540600",
        "name": "那曲市"
      },
      {
        "citycode": "542500",
        "name": "阿里地区"
      }
    ]
  },
  {
    "proadcode": "610000",
    "name": "陕西省",
    "cities": [
      {
        "citycode": "610100",
        "name": "西安市"
      },
      {
        "citycode": "610200",
        "name": "铜川市"
      },
      {
        "citycode": "610300",
        "name": "宝鸡市"
      },
      {
        "citycode": "610400",
        "name": "咸阳市"
      },
      {
        "citycode": "610500",
        "name": "渭南市"
      },
      {
        "citycode": "610600",
        "name": "延安市"
      },
      {
        "citycode": "610700",
        "name": "汉中市"
      },
      {
        "citycode": "610800",
        "name": "榆林市"
      },
      {
        "citycode": "610900",
        "name": "安康市"
      },
      {
        "citycode": "611000",
        "name": "商洛市"
      }
    ]
  },
  {
    "proadcode": "620000",
    "name": "甘肃省",
    "cities": [
      {
        "citycode": "620100",
        "name": "兰州市"
      },
      {
        "citycode": "620200",
        "name": "嘉峪关市"
      },
      {
        "citycode": "620300",
        "name": "金昌市"
      },
      {
        "citycode": "620400",
        "name": "白银市"
      },
      {
        "citycode": "620500",
        "name": "天水市"
      },
      {
        "citycode": "620600",
        "name": "武威市"
      },
      {
        "citycode": "620700",
        "name": "张掖市"
      },
      {
        "citycode": "620800",
        "name": "平凉市"
      },
      {
        "citycode": "620900",
        "name": "酒泉市"
      },
      {
        "citycode": "621000",
        "name": "庆阳市"
      },
      {
        "citycode": "621100",
        "name": "定西市"
      },
      {
        "citycode": "621200",
        "name": "陇南市"
      },
      {
        "citycode": "622900",
        "name": "临夏回族自治州"
      },
      {
        "citycode": "623000",
        "name": "甘南藏族自治州"
      }
    ]
  },
  {
    "proadcode": "630000",
    "name": "青海省",
    "cities": [
      {
        "citycode": "630100",
        "name": "西宁市"
      },
      {
        "citycode": "630200",
        "name": "海东市"
      },
      {
        "citycode": "632200",
        "name": "海北藏族自治州"
      },
      {
        "citycode": "632300",
        "name": "黄南藏族自治州"
      },
      {
        "citycode": "632500",
        "name": "海南藏族自治州"
      },
      {
        "citycode": "632600",
        "name": "果洛藏族自治州"
      },
      {
        "citycode": "632700",
        "name": "玉树藏族自治州"
      },
      {
        "citycode": "632800",
        "name": "海西蒙古族藏族自治州"
      }
    ]
  },
  {
    "proadcode": "640000",
    "name": "宁夏回族自治区",
    "cities": [
      {
        "citycode": "640100",
        "name": "银川市"
      },
      {
        "citycode": "640200",
        "name": "石嘴山市"
      },
      {
        "citycode": "640300",
        "name": "吴忠市"
      },
      {
        "citycode": "640400",
        "name": "固原市"
      },
      {
        "citycode": "640500",
        "name": "中卫市"
      }
    ]
  },
  {
    "proadcode": "650000",
    "name": "新疆维吾尔自治区",
    "cities": [
      {
        "citycode": "650100",
        "name": "乌鲁木齐市"
      },
      {
        "citycode": "650200",
        "name": "克拉玛依市"
      },
      {
        "citycode": "650400",
        "name": "吐鲁番市"
      },
      {
        "citycode": "650500",
        "name": "哈密市"
      },
      {
        "citycode": "652300",
        "name": "昌吉回族自治州"
      },
      {
        "citycode": "652700",
        "name": "博尔塔拉蒙古自治州"
      },
      {
        "citycode": "652800",
        "name": "巴音郭楞蒙古自治州"
      },
      {
        "citycode": "652900",
        "name": "阿克苏地区"
      },
      {
        "citycode": "653000",
        "name": "克孜勒苏柯尔克孜自治州"
      },
      {
        "citycode": "653100",
        "name": "喀什地区"
      },
      {
        "citycode": "653200",
        "name": "和田地区"
      },
      {
        "citycode": "654000",
        "name": "伊犁哈萨克自治州"
      },
      {
        "citycode": "654200",
        "name": "塔城地区"
      },
      {
        "citycode": "654300",
        "name": "阿勒泰地区"
      }
    ]
  },
  {
    "proadcode": "710000",
    "name": "台湾省",
    "cities": [
      {
        "citycode": "710000",
        "name": "台湾省"
      }
    ]
  },
  {
    "proadcode": "810000",
    "name": "香港特别行政区",
    "cities": [
      {
        "citycode": "810000",
        "name": "香港特别行政区"
      }
    ]
  },
  {
    "proadcode": "820000",
    "name": "澳门特别行政区",
    "cities": [
      {
        "citycode": "820000",
        "name": "澳门特别行政区"
      }
    ]
  }
]

参考

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的 Java 工具类,可以将 List 转换为树形结构: ```java import java.util.*; public class TreeUtil { public static <T extends TreeNode> List<T> buildTree(List<T> nodes) { if (nodes == null || nodes.size() == 0) { return Collections.emptyList(); } Map<Long, T> nodeMap = new HashMap<>(); for (T node : nodes) { nodeMap.put(node.getId(), node); } List<T> rootNodes = new ArrayList<>(); for (T node : nodes) { T parent = nodeMap.get(node.getParentId()); if (parent != null) { parent.addChild(node); } else { rootNodes.add(node); } } return rootNodes; } public interface TreeNode { Long getId(); Long getParentId(); void addChild(TreeNode child); List<? extends TreeNode> getChildren(); } } ``` 这个工具类包含了一个通用的接口 `TreeNode`,通过实现这个接口,可以将任意类型的 List 转换为树形结构。 `TreeNode` 接口包含了三个方法: - `getId()`:获取节点的唯一标识符。 - `getParentId()`:获取节点的父节点标识符。 - `addChild(TreeNode child)`:将一个子节点添加到当前节点。 - `getChildren()`:获取当前节点的所有子节点。 使用这个工具类非常简单,只需要将需要转换的 List 传入 `buildTree()` 方法中即可: ```java List<MyNode> nodes = ...; // 获取需要转换的 List List<MyNode> rootNodes = TreeUtil.buildTree(nodes); ``` 其中 `MyNode` 是一个实现了 `TreeNode` 接口的自定义类。注意,为了能够正确地构建树形结构,每个节点的 `getParentId()` 方法必须返回其父节点的 `getId()` 值。否则,节点将无法正确地添加到树中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序媛一枚~

您的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值