Java树形结构模糊搜索,模糊匹配

相关类结构

核心代码

package com.demo;

import org.apache.commons.collections4.CollectionUtils;

import java.util.Iterator;
import java.util.List;

/**
 * description: TreeUtils <br>
 * date: 2022/5/20 10:48 <br>
 * author: chopper <br>
 */
public class TreeUtils {
    public static <T extends BaseTreeVO> T filterTreeByKeyWord(T t, String keyword) {
        List<BaseTreeVO> children = t.getChildren();
        if (CollectionUtils.isEmpty(children)) {
            return t;
        }
        filter(children, keyword);
        return t;
    }

    /**
     * 递归方法
     * @param list 任意层级的节点
     * @param keyword 关键字
     */
    private static void filter(List<BaseTreeVO> list, String keyword){
        Iterator<BaseTreeVO> parent = list.iterator();
        while (parent.hasNext()){
            //当前节点
            BaseTreeVO t = parent.next();
            if (!t.getName().contains(keyword)) {
                //当前节点不包含关键字,继续遍历下一级
                // 取出下一级节点
                List<BaseTreeVO> children = t.getChildren();
                // 递归
                if (!CollectionUtils.isEmpty(children)) {
                    filter(children, keyword);
                }
                //下一级节点都被移除了,那么父节点也移除,因为父节点也不包含关键字
                if (CollectionUtils.isEmpty(t.getChildren())) {
                    parent.remove();
                }
            } else {
                //当前节点包含关键字,继续递归遍历
                //子节点递归如果不包含关键字则会进入if分支被删除
                List<BaseTreeVO> children = t.getChildren();
                // 递归
                if (!CollectionUtils.isEmpty(children)) {
                    filter(children, keyword);
                }
            }
        }
    }
}


辅助类–树结构基类

package com.demo;

import java.util.List;

/**
 * description: 树结构基类 <br>
 * date: 2022/5/20 10:46 <br>
 * author: chopper <br>
 */
public class BaseTreeVO<T extends BaseTreeVO> {
    private String name;
    private List<T> children;

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<T> getChildren() {
        return this.children;
    }

    public void setChildren(List<T> children) {
        this.children = children;
    }
}

辅助类–测试类

package com.demo;

/**
 * description: TestVO <br>
 * date: 2022/5/20 14:28 <br>
 * author: chopper <br>
 */
public class TestVO extends BaseTreeVO<TestVO> {
    private String code;

    public String getCode() {
        return this.code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    
}

测试代码

package com.demo;

import java.io.IOException;

/**
 * description: Test <br>
 * date: 2022/5/20 14:49 <br>
 * author: chopper <br>
 */
public class Test {
    public static void main(String[] args) {
        try {
            TestVO testVO = JSONUtil.jsonToBean(getJson(), TestVO.class);
            System.out.println(JSONUtil.beanToJson(TreeUtils.filterTreeByKeyWord(testVO, "州市")));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static String getJson() {
        return "{\n" +
                "    \"name\": \"根节点\",\n" +
                "    \"code\": null,\n" +
                "    \"children\": [\n" +
        ......伪代码......
                "}";
    }
}

发现含有州的市有 43 个

搜索 州市的结果

{
    "name": "根节点",
    "children": [
        {
            "name": "河北省",
            "children": [
                {
                    "name": "沧州市",
                    "children": null,
                    "code": "130900"
                }
            ],
            "code": "130000"
        },
        {
            "name": "山西省",
            "children": [
                {
                    "name": "朔州市",
                    "children": null,
                    "code": "140600"
                },
                {
                    "name": "忻州市",
                    "children": null,
                    "code": "140900"
                }
            ],
            "code": "140000"
        },
        {
            "name": "辽宁省",
            "children": [
                {
                    "name": "锦州市",
                    "children": null,
                    "code": "210700"
                }
            ],
            "code": "210000"
        },
        {
            "name": "江苏省",
            "children": [
                {
                    "name": "徐州市",
                    "children": null,
                    "code": "320300"
                },
                {
                    "name": "常州市",
                    "children": null,
                    "code": "320400"
                },
                {
                    "name": "苏州市",
                    "children": null,
                    "code": "320500"
                },
                {
                    "name": "扬州市",
                    "children": null,
                    "code": "321000"
                },
                {
                    "name": "泰州市",
                    "children": null,
                    "code": "321200"
                }
            ],
            "code": "320000"
        },
        {
            "name": "浙江省",
            "children": [
                {
                    "name": "杭州市",
                    "children": null,
                    "code": "330100"
                },
                {
                    "name": "温州市",
                    "children": null,
                    "code": "330300"
                },
                {
                    "name": "湖州市",
                    "children": null,
                    "code": "330500"
                },
                {
                    "name": "衢州市",
                    "children": null,
                    "code": "330800"
                },
                {
                    "name": "台州市",
                    "children": null,
                    "code": "331000"
                }
            ],
            "code": "330000"
        },
        {
            "name": "安徽省",
            "children": [
                {
                    "name": "滁州市",
                    "children": null,
                    "code": "341100"
                },
                {
                    "name": "宿州市",
                    "children": null,
                    "code": "341300"
                },
                {
                    "name": "亳州市",
                    "children": null,
                    "code": "341600"
                },
                {
                    "name": "池州市",
                    "children": null,
                    "code": "341700"
                }
            ],
            "code": "340000"
        },
        {
            "name": "福建省",
            "children": [
                {
                    "name": "福州市",
                    "children": null,
                    "code": "350100"
                },
                {
                    "name": "泉州市",
                    "children": null,
                    "code": "350500"
                },
                {
                    "name": "漳州市",
                    "children": null,
                    "code": "350600"
                }
            ],
            "code": "350000"
        },
        {
            "name": "江西省",
            "children": [
                {
                    "name": "赣州市",
                    "children": null,
                    "code": "360700"
                },
                {
                    "name": "抚州市",
                    "children": null,
                    "code": "361000"
                }
            ],
            "code": "360000"
        },
        {
            "name": "山东省",
            "children": [
                {
                    "name": "德州市",
                    "children": null,
                    "code": "371400"
                },
                {
                    "name": "滨州市",
                    "children": null,
                    "code": "371600"
                }
            ],
            "code": "370000"
        },
        {
            "name": "河南省",
            "children": [
                {
                    "name": "郑州市",
                    "children": null,
                    "code": "410100"
                }
            ],
            "code": "410000"
        },
        {
            "name": "湖北省",
            "children": [
                {
                    "name": "鄂州市",
                    "children": null,
                    "code": "420700"
                },
                {
                    "name": "荆州市",
                    "children": null,
                    "code": "421000"
                },
                {
                    "name": "随州市",
                    "children": null,
                    "code": "421300"
                }
            ],
            "code": "420000"
        },
        {
            "name": "湖南省",
            "children": [
                {
                    "name": "郴州市",
                    "children": null,
                    "code": "431000"
                },
                {
                    "name": "永州市",
                    "children": null,
                    "code": "431100"
                }
            ],
            "code": "430000"
        },
        {
            "name": "广东省",
            "children": [
                {
                    "name": "广州市",
                    "children": null,
                    "code": "440100"
                },
                {
                    "name": "惠州市",
                    "children": null,
                    "code": "441300"
                },
                {
                    "name": "梅州市",
                    "children": null,
                    "code": "441400"
                },
                {
                    "name": "潮州市",
                    "children": null,
                    "code": "445100"
                }
            ],
            "code": "440000"
        },
        {
            "name": "广西壮族",
            "children": [
                {
                    "name": "柳州市",
                    "children": null,
                    "code": "450200"
                },
                {
                    "name": "梧州市",
                    "children": null,
                    "code": "450400"
                },
                {
                    "name": "钦州市",
                    "children": null,
                    "code": "450700"
                },
                {
                    "name": "贺州市",
                    "children": null,
                    "code": "451100"
                }
            ],
            "code": "450000"
        },
        {
            "name": "海南省",
            "children": [
                {
                    "name": "儋州市",
                    "children": null,
                    "code": "469003"
                }
            ],
            "code": "460000"
        },
        {
            "name": "四川省",
            "children": [
                {
                    "name": "泸州市",
                    "children": null,
                    "code": "510500"
                },
                {
                    "name": "达州市",
                    "children": null,
                    "code": "511700"
                }
            ],
            "code": "510000"
        },
        {
            "name": "甘肃省",
            "children": [
                {
                    "name": "兰州市",
                    "children": null,
                    "code": "620100"
                }
            ],
            "code": "620000"
        }
    ],
    "code": null
}
源字符串 省市区json字符串
{
    "name": "根节点",
    "code": null,
    "children": [
        {
            "code": "110000",
            "name": "北京市",
            "children": [
                {
                    "code": "110101",
                    "name": "东城区"
                },
                {
                    "code": "110102",
                    "name": "西城区"
                },
                {
                    "code": "110103",
                    "name": "崇文区"
                },
                {
                    "code": "110104",
                    "name": "宣武区"
                },
                {
                    "code": "110105",
                    "name": "朝阳区"
                },
                {
                    "code": "110106",
                    "name": "丰台区"
                },
                {
                    "code": "110107",
                    "name": "石景山区"
                },
                {
                    "code": "110108",
                    "name": "海淀区"
                },
                {
                    "code": "110109",
                    "name": "门头沟区"
                },
                {
                    "code": "110111",
                    "name": "房山区"
                },
                {
                    "code": "110112",
                    "name": "通州区"
                },
                {
                    "code": "110113",
                    "name": "顺义区"
                },
                {
                    "code": "110114",
                    "name": "昌平区"
                },
                {
                    "code": "110115",
                    "name": "大兴区"
                },
                {
                    "code": "110116",
                    "name": "怀柔区"
                },
                {
                    "code": "110117",
                    "name": "平谷区"
                },
                {
                    "code": "110228",
                    "name": "密云县"
                },
                {
                    "code": "110229",
                    "name": "延庆县"
                },
                {
                    "code": "110230",
                    "name": "其它区"
                }
            ]
        },
        {
            "code": "120000",
            "name": "天津市",
            "children": [
                {
                    "code": "120101",
                    "name": "和平区"
                },
                {
                    "code": "120102",
                    "name": "河东区"
                },
                {
                    "code": "120103",
                    "name": "河西区"
                },
                {
                    "code": "120104",
                    "name": "南开区"
                },
                {
                    "code": "120105",
                    "name": "河北区"
                },
                {
                    "code": "120106",
                    "name": "红桥区"
                },
                {
                    "code": "120107",
                    "name": "塘沽区"
                },
                {
                    "code": "120108",
                    "name": "汉沽区"
                },
                {
                    "code": "120109",
                    "name": "大港区"
                },
                {
                    "code": "120110",
                    "name": "东丽区"
                },
                {
                    "code": "120111",
                    "name": "西青区"
                },
                {
                    "code": "120112",
                    "name": "津南区"
                },
                {
                    "code": "120113",
                    "name": "北辰区"
                },
                {
                    "code": "120114",
                    "name": "武清区"
                },
                {
                    "code": "120115",
                    "name": "宝坻区"
                },
                {
                    "code": "120116",
                    "name": "滨海新区"
                },
                {
                    "code": "120221",
                    "name": "宁河县"
                },
                {
                    "code": "120223",
                    "name": "静海县"
                },
                {
                    "code": "120225",
                    "name": "蓟县"
                },
                {
                    "code": "120226",
                    "name": "其它区"
                }
            ]
        },
        {
            "code": "130000",
            "name": "河北省",
            "children": [
                {
                    "code": "130100",
                    "name": "石家庄市"
                },
                {
                    "code": "130200",
                    "name": "唐山市"
                },
                {
                    "code": "130300",
                    "name": "秦皇岛市"
                },
                {
                    "code": "130400",
                    "name": "邯郸市"
                },
                {
                    "code": "130500",
                    "name": "邢台市"
                },
                {
                    "code": "130600",
                    "name": "保定市"
                },
                {
                    "code": "130700",
                    "name": "张家口市"
                },
                {
                    "code": "130800",
                    "name": "承德市"
                },
                {
                    "code": "130900",
                    "name": "沧州市"
                },
                {
                    "code": "131000",
                    "name": "廊坊市"
                },
                {
                    "code": "131100",
                    "name": "衡水市"
                }
            ]
        },
        {
            "code": "140000",
            "name": "山西省",
            "children": [
                {
                    "code": "140100",
                    "name": "太原市"
                },
                {
                    "code": "140200",
                    "name": "大同市"
                },
                {
                    "code": "140300",
                    "name": "阳泉市"
                },
                {
                    "code": "140400",
                    "name": "长治市"
                },
                {
                    "code": "140500",
                    "name": "晋城市"
                },
                {
                    "code": "140600",
                    "name": "朔州市"
                },
                {
                    "code": "140700",
                    "name": "晋中市"
                },
                {
                    "code": "140800",
                    "name": "运城市"
                },
                {
                    "code": "140900",
                    "name": "忻州市"
                },
                {
                    "code": "141000",
                    "name": "临汾市"
                },
                {
                    "code": "141100",
                    "name": "吕梁市"
                }
            ]
        },
        {
            "code": "150000",
            "name": "内蒙古",
            "children": [
                {
                    "code": "150100",
                    "name": "呼和浩特市"
                },
                {
                    "code": "150200",
                    "name": "包头市"
                },
                {
                    "code": "150300",
                    "name": "乌海市"
                },
                {
                    "code": "150400",
                    "name": "赤峰市"
                },
                {
                    "code": "150500",
                    "name": "通辽市"
                },
                {
                    "code": "150600",
                    "name": "鄂尔多斯市"
                },
                {
                    "code": "150700",
                    "name": "呼伦贝尔市"
                },
                {
                    "code": "150800",
                    "name": "巴彦淖尔市"
                },
                {
                    "code": "150900",
                    "name": "乌兰察布市"
                },
                {
                    "code": "152200",
                    "name": "兴安盟"
                },
                {
                    "code": "152500",
                    "name": "锡林郭勒盟"
                },
                {
                    "code": "152900",
                    "name": "阿拉善盟"
                }
            ]
        },
        {
            "code": "210000",
            "name": "辽宁省",
            "children": [
                {
                    "code": "210100",
                    "name": "沈阳市"
                },
                {
                    "code": "210200",
                    "name": "大连市"
                },
                {
                    "code": "210300",
                    "name": "鞍山市"
                },
                {
                    "code": "210400",
                    "name": "抚顺市"
                },
                {
                    "code": "210500",
                    "name": "本溪市"
                },
                {
                    "code": "210600",
                    "name": "丹东市"
                },
                {
                    "code": "210700",
                    "name": "锦州市"
                },
                {
                    "code": "210800",
                    "name": "营口市"
                },
                {
                    "code": "210900",
                    "name": "阜新市"
                },
                {
                    "code": "211000",
                    "name": "辽阳市"
                },
                {
                    "code": "211100",
                    "name": "盘锦市"
                },
                {
                    "code": "211200",
                    "name": "铁岭市"
                },
                {
                    "code": "211300",
                    "name": "朝阳市"
                },
                {
                    "code": "211400",
                    "name": "葫芦岛市"
                }
            ]
        },
        {
            "code": "220000",
            "name": "吉林省",
            "children": [
                {
                    "code": "220100",
                    "name": "长春市"
                },
                {
                    "code": "220200",
                    "name": "吉林市"
                },
                {
                    "code": "220300",
                    "name": "四平市"
                },
                {
                    "code": "220400",
                    "name": "辽源市"
                },
                {
                    "code": "220500",
                    "name": "通化市"
                },
                {
                    "code": "220600",
                    "name": "白山市"
                },
                {
                    "code": "220700",
                    "name": "松原市"
                },
                {
                    "code": "220800",
                    "name": "白城市"
                },
                {
                    "code": "222400",
                    "name": "延边朝鲜族自治州"
                }
            ]
        },
        {
            "code": "230000",
            "name": "黑龙江省",
            "children": [
                {
                    "code": "230100",
                    "name": "哈尔滨市"
                },
                {
                    "code": "230200",
                    "name": "齐齐哈尔市"
                },
                {
                    "code": "230300",
                    "name": "鸡西市"
                },
                {
                    "code": "230400",
                    "name": "鹤岗市"
                },
                {
                    "code": "230500",
                    "name": "双鸭山市"
                },
                {
                    "code": "230600",
                    "name": "大庆市"
                },
                {
                    "code": "230700",
                    "name": "伊春市"
                },
                {
                    "code": "230800",
                    "name": "佳木斯市"
                },
                {
                    "code": "230900",
                    "name": "七台河市"
                },
                {
                    "code": "231000",
                    "name": "牡丹江市"
                },
                {
                    "code": "231100",
                    "name": "黑河市"
                },
                {
                    "code": "231200",
                    "name": "绥化市"
                },
                {
                    "code": "232700",
                    "name": "大兴安岭地区"
                }
            ]
        },
        {
            "code": "310000",
            "name": "上海市",
            "children": [
                {
                    "code": "310101",
                    "name": "黄浦区"
                },
                {
                    "code": "310103",
                    "name": "卢湾区"
                },
                {
                    "code": "310104",
                    "name": "徐汇区"
                },
                {
                    "code": "310105",
                    "name": "长宁区"
                },
                {
                    "code": "310106",
                    "name": "静安区"
                },
                {
                    "code": "310107",
                    "name": "普陀区"
                },
                {
                    "code": "310108",
                    "name": "闸北区"
                },
                {
                    "code": "310109",
                    "name": "虹口区"
                },
                {
                    "code": "310110",
                    "name": "杨浦区"
                },
                {
                    "code": "310112",
                    "name": "闵行区"
                },
                {
                    "code": "310113",
                    "name": "宝山区"
                },
                {
                    "code": "310114",
                    "name": "嘉定区"
                },
                {
                    "code": "310115",
                    "name": "浦东新区"
                },
                {
                    "code": "310116",
                    "name": "金山区"
                },
                {
                    "code": "310117",
                    "name": "松江区"
                },
                {
                    "code": "310118",
                    "name": "青浦区"
                },
                {
                    "code": "310119",
                    "name": "南汇区"
                },
                {
                    "code": "310120",
                    "name": "奉贤区"
                },
                {
                    "code": "310152",
                    "name": "川沙区"
                },
                {
                    "code": "310230",
                    "name": "崇明县"
                },
                {
                    "code": "310231",
                    "name": "其它区"
                }
            ]
        },
        {
            "code": "320000",
            "name": "江苏省",
            "children": [
                {
                    "code": "320100",
                    "name": "南京市"
                },
                {
                    "code": "320200",
                    "name": "无锡市"
                },
                {
                    "code": "320300",
                    "name": "徐州市"
                },
                {
                    "code": "320400",
                    "name": "常州市"
                },
                {
                    "code": "320500",
                    "name": "苏州市"
                },
                {
                    "code": "320600",
                    "name": "南通市"
                },
                {
                    "code": "320700",
                    "name": "连云港市"
                },
                {
                    "code": "320800",
                    "name": "淮安市"
                },
                {
                    "code": "320900",
                    "name": "盐城市"
                },
                {
                    "code": "321000",
                    "name": "扬州市"
                },
                {
                    "code": "321100",
                    "name": "镇江市"
                },
                {
                    "code": "321200",
                    "name": "泰州市"
                },
                {
                    "code": "321300",
                    "name": "宿迁市"
                }
            ]
        },
        {
            "code": "330000",
            "name": "浙江省",
            "children": [
                {
                    "code": "330100",
                    "name": "杭州市"
                },
                {
                    "code": "330200",
                    "name": "宁波市"
                },
                {
                    "code": "330300",
                    "name": "温州市"
                },
                {
                    "code": "330400",
                    "name": "嘉兴市"
                },
                {
                    "code": "330500",
                    "name": "湖州市"
                },
                {
                    "code": "330600",
                    "name": "绍兴市"
                },
                {
                    "code": "330700",
                    "name": "金华市"
                },
                {
                    "code": "330800",
                    "name": "衢州市"
                },
                {
                    "code": "330900",
                    "name": "舟山市"
                },
                {
                    "code": "331000",
                    "name": "台州市"
                },
                {
                    "code": "331100",
                    "name": "丽水市"
                }
            ]
        },
        {
            "code": "340000",
            "name": "安徽省",
            "children": [
                {
                    "code": "340100",
                    "name": "合肥市"
                },
                {
                    "code": "340200",
                    "name": "芜湖市"
                },
                {
                    "code": "340300",
                    "name": "蚌埠市"
                },
                {
                    "code": "340400",
                    "name": "淮南市"
                },
                {
                    "code": "340500",
                    "name": "马鞍山市"
                },
                {
                    "code": "340600",
                    "name": "淮北市"
                },
                {
                    "code": "340700",
                    "name": "铜陵市"
                },
                {
                    "code": "340800",
                    "name": "安庆市"
                },
                {
                    "code": "341000",
                    "name": "黄山市"
                },
                {
                    "code": "341100",
                    "name": "滁州市"
                },
                {
                    "code": "341200",
                    "name": "阜阳市"
                },
                {
                    "code": "341300",
                    "name": "宿州市"
                },
                {
                    "code": "341500",
                    "name": "六安市"
                },
                {
                    "code": "341600",
                    "name": "亳州市"
                },
                {
                    "code": "341700",
                    "name": "池州市"
                },
                {
                    "code": "341800",
                    "name": "宣城市"
                }
            ]
        },
        {
            "code": "350000",
            "name": "福建省",
            "children": [
                {
                    "code": "350100",
                    "name": "福州市"
                },
                {
                    "code": "350200",
                    "name": "厦门市"
                },
                {
                    "code": "350300",
                    "name": "莆田市"
                },
                {
                    "code": "350400",
                    "name": "三明市"
                },
                {
                    "code": "350500",
                    "name": "泉州市"
                },
                {
                    "code": "350600",
                    "name": "漳州市"
                },
                {
                    "code": "350700",
                    "name": "南平市"
                },
                {
                    "code": "350800",
                    "name": "龙岩市"
                },
                {
                    "code": "350900",
                    "name": "宁德市"
                }
            ]
        },
        {
            "code": "360000",
            "name": "江西省",
            "children": [
                {
                    "code": "360100",
                    "name": "南昌市"
                },
                {
                    "code": "360200",
                    "name": "景德镇市"
                },
                {
                    "code": "360300",
                    "name": "萍乡市"
                },
                {
                    "code": "360400",
                    "name": "九江市"
                },
                {
                    "code": "360500",
                    "name": "新余市"
                },
                {
                    "code": "360600",
                    "name": "鹰潭市"
                },
                {
                    "code": "360700",
                    "name": "赣州市"
                },
                {
                    "code": "360800",
                    "name": "吉安市"
                },
                {
                    "code": "360900",
                    "name": "宜春市"
                },
                {
                    "code": "361000",
                    "name": "抚州市"
                },
                {
                    "code": "361100",
                    "name": "上饶市"
                }
            ]
        },
        {
            "code": "370000",
            "name": "山东省",
            "children": [
                {
                    "code": "370100",
                    "name": "济南市"
                },
                {
                    "code": "370200",
                    "name": "青岛市"
                },
                {
                    "code": "370300",
                    "name": "淄博市"
                },
                {
                    "code": "370400",
                    "name": "枣庄市"
                },
                {
                    "code": "370500",
                    "name": "东营市"
                },
                {
                    "code": "370600",
                    "name": "烟台市"
                },
                {
                    "code": "370700",
                    "name": "潍坊市"
                },
                {
                    "code": "370800",
                    "name": "济宁市"
                },
                {
                    "code": "370900",
                    "name": "泰安市"
                },
                {
                    "code": "371000",
                    "name": "威海市"
                },
                {
                    "code": "371100",
                    "name": "日照市"
                },
                {
                    "code": "371200",
                    "name": "莱芜市"
                },
                {
                    "code": "371300",
                    "name": "临沂市"
                },
                {
                    "code": "371400",
                    "name": "德州市"
                },
                {
                    "code": "371500",
                    "name": "聊城市"
                },
                {
                    "code": "371600",
                    "name": "滨州市"
                },
                {
                    "code": "371700",
                    "name": "菏泽市"
                }
            ]
        },
        {
            "code": "410000",
            "name": "河南省",
            "children": [
                {
                    "code": "410100",
                    "name": "郑州市"
                },
                {
                    "code": "410200",
                    "name": "开封市"
                },
                {
                    "code": "410300",
                    "name": "洛阳市"
                },
                {
                    "code": "410400",
                    "name": "平顶山市"
                },
                {
                    "code": "410500",
                    "name": "安阳市"
                },
                {
                    "code": "410600",
                    "name": "鹤壁市"
                },
                {
                    "code": "410700",
                    "name": "新乡市"
                },
                {
                    "code": "410800",
                    "name": "焦作市"
                },
                {
                    "code": "410881",
                    "name": "济源市"
                },
                {
                    "code": "410900",
                    "name": "濮阳市"
                },
                {
                    "code": "411000",
                    "name": "许昌市"
                },
                {
                    "code": "411100",
                    "name": "漯河市"
                },
                {
                    "code": "411200",
                    "name": "三门峡市"
                },
                {
                    "code": "411300",
                    "name": "南阳市"
                },
                {
                    "code": "411400",
                    "name": "商丘市"
                },
                {
                    "code": "411500",
                    "name": "信阳市"
                },
                {
                    "code": "411600",
                    "name": "周口市"
                },
                {
                    "code": "411700",
                    "name": "驻马店市"
                }
            ]
        },
        {
            "code": "420000",
            "name": "湖北省",
            "children": [
                {
                    "code": "420100",
                    "name": "武汉市"
                },
                {
                    "code": "420200",
                    "name": "黄石市"
                },
                {
                    "code": "420300",
                    "name": "十堰市"
                },
                {
                    "code": "420500",
                    "name": "宜昌市"
                },
                {
                    "code": "420600",
                    "name": "襄阳市"
                },
                {
                    "code": "420700",
                    "name": "鄂州市"
                },
                {
                    "code": "420800",
                    "name": "荆门市"
                },
                {
                    "code": "420900",
                    "name": "孝感市"
                },
                {
                    "code": "421000",
                    "name": "荆州市"
                },
                {
                    "code": "421100",
                    "name": "黄冈市"
                },
                {
                    "code": "421200",
                    "name": "咸宁市"
                },
                {
                    "code": "421300",
                    "name": "随州市"
                },
                {
                    "code": "422800",
                    "name": "恩施土家族苗族自治州"
                },
                {
                    "code": "429004",
                    "name": "仙桃市"
                },
                {
                    "code": "429005",
                    "name": "潜江市"
                },
                {
                    "code": "429006",
                    "name": "天门市"
                },
                {
                    "code": "429021",
                    "name": "神农架林区"
                }
            ]
        },
        {
            "code": "430000",
            "name": "湖南省",
            "children": [
                {
                    "code": "430100",
                    "name": "长沙市"
                },
                {
                    "code": "430200",
                    "name": "株洲市"
                },
                {
                    "code": "430300",
                    "name": "湘潭市"
                },
                {
                    "code": "430400",
                    "name": "衡阳市"
                },
                {
                    "code": "430500",
                    "name": "邵阳市"
                },
                {
                    "code": "430600",
                    "name": "岳阳市"
                },
                {
                    "code": "430700",
                    "name": "常德市"
                },
                {
                    "code": "430800",
                    "name": "张家界市"
                },
                {
                    "code": "430900",
                    "name": "益阳市"
                },
                {
                    "code": "431000",
                    "name": "郴州市"
                },
                {
                    "code": "431100",
                    "name": "永州市"
                },
                {
                    "code": "431200",
                    "name": "怀化市"
                },
                {
                    "code": "431300",
                    "name": "娄底市"
                },
                {
                    "code": "433100",
                    "name": "湘西土家族苗族自治州"
                }
            ]
        },
        {
            "code": "440000",
            "name": "广东省",
            "children": [
                {
                    "code": "440100",
                    "name": "广州市"
                },
                {
                    "code": "440200",
                    "name": "韶关市"
                },
                {
                    "code": "440300",
                    "name": "深圳市"
                },
                {
                    "code": "440400",
                    "name": "珠海市"
                },
                {
                    "code": "440500",
                    "name": "汕头市"
                },
                {
                    "code": "440600",
                    "name": "佛山市"
                },
                {
                    "code": "440700",
                    "name": "江门市"
                },
                {
                    "code": "440800",
                    "name": "湛江市"
                },
                {
                    "code": "440900",
                    "name": "茂名市"
                },
                {
                    "code": "441200",
                    "name": "肇庆市"
                },
                {
                    "code": "441300",
                    "name": "惠州市"
                },
                {
                    "code": "441400",
                    "name": "梅州市"
                },
                {
                    "code": "441500",
                    "name": "汕尾市"
                },
                {
                    "code": "441600",
                    "name": "河源市"
                },
                {
                    "code": "441700",
                    "name": "阳江市"
                },
                {
                    "code": "441800",
                    "name": "清远市"
                },
                {
                    "code": "441900",
                    "name": "东莞市"
                },
                {
                    "code": "442000",
                    "name": "中山市"
                },
                {
                    "code": "445100",
                    "name": "潮州市"
                },
                {
                    "code": "445200",
                    "name": "揭阳市"
                },
                {
                    "code": "445300",
                    "name": "云浮市"
                }
            ]
        },
        {
            "code": "450000",
            "name": "广西壮族",
            "children": [
                {
                    "code": "450100",
                    "name": "南宁市"
                },
                {
                    "code": "450200",
                    "name": "柳州市"
                },
                {
                    "code": "450300",
                    "name": "桂林市"
                },
                {
                    "code": "450400",
                    "name": "梧州市"
                },
                {
                    "code": "450500",
                    "name": "北海市"
                },
                {
                    "code": "450600",
                    "name": "防城港市"
                },
                {
                    "code": "450700",
                    "name": "钦州市"
                },
                {
                    "code": "450800",
                    "name": "贵港市"
                },
                {
                    "code": "450900",
                    "name": "玉林市"
                },
                {
                    "code": "451000",
                    "name": "百色市"
                },
                {
                    "code": "451100",
                    "name": "贺州市"
                },
                {
                    "code": "451200",
                    "name": "河池市"
                },
                {
                    "code": "451300",
                    "name": "来宾市"
                },
                {
                    "code": "451400",
                    "name": "崇左市"
                }
            ]
        },
        {
            "code": "460000",
            "name": "海南省",
            "children": [
                {
                    "code": "460100",
                    "name": "海口市"
                },
                {
                    "code": "460200",
                    "name": "三亚市"
                },
                {
                    "code": "469001",
                    "name": "五指山市"
                },
                {
                    "code": "469002",
                    "name": "琼海市"
                },
                {
                    "code": "469003",
                    "name": "儋州市"
                },
                {
                    "code": "469005",
                    "name": "文昌市"
                },
                {
                    "code": "469006",
                    "name": "万宁市"
                },
                {
                    "code": "469007",
                    "name": "东方市"
                },
                {
                    "code": "469025",
                    "name": "定安县"
                },
                {
                    "code": "469026",
                    "name": "屯昌县"
                },
                {
                    "code": "469027",
                    "name": "澄迈县"
                },
                {
                    "code": "469028",
                    "name": "临高县"
                },
                {
                    "code": "469030",
                    "name": "白沙黎族自治县"
                },
                {
                    "code": "469031",
                    "name": "昌江黎族自治县"
                },
                {
                    "code": "469033",
                    "name": "乐东黎族自治县"
                },
                {
                    "code": "469034",
                    "name": "陵水黎族自治县"
                },
                {
                    "code": "469035",
                    "name": "保亭黎族苗族自治县"
                },
                {
                    "code": "469036",
                    "name": "琼中黎族苗族自治县"
                },
                {
                    "code": "469037",
                    "name": "西沙群岛"
                },
                {
                    "code": "469038",
                    "name": "南沙群岛"
                },
                {
                    "code": "469039",
                    "name": "中沙群岛的岛礁及其海域"
                }
            ]
        },
        {
            "code": "500000",
            "name": "重庆",
            "children": [
                {
                    "code": "500101",
                    "name": "万州区"
                },
                {
                    "code": "500102",
                    "name": "涪陵区"
                },
                {
                    "code": "500103",
                    "name": "渝中区"
                },
                {
                    "code": "500104",
                    "name": "大渡口区"
                },
                {
                    "code": "500105",
                    "name": "江北区"
                },
                {
                    "code": "500106",
                    "name": "沙坪坝区"
                },
                {
                    "code": "500107",
                    "name": "九龙坡区"
                },
                {
                    "code": "500108",
                    "name": "南岸区"
                },
                {
                    "code": "500109",
                    "name": "北碚区"
                },
                {
                    "code": "500110",
                    "name": "万盛区"
                },
                {
                    "code": "500111",
                    "name": "双桥区"
                },
                {
                    "code": "500112",
                    "name": "渝北区"
                },
                {
                    "code": "500113",
                    "name": "巴南区"
                },
                {
                    "code": "500114",
                    "name": "黔江区"
                },
                {
                    "code": "500115",
                    "name": "长寿区"
                },
                {
                    "code": "500222",
                    "name": "綦江县"
                },
                {
                    "code": "500223",
                    "name": "潼南县"
                },
                {
                    "code": "500224",
                    "name": "铜梁县"
                },
                {
                    "code": "500225",
                    "name": "大足县"
                },
                {
                    "code": "500226",
                    "name": "荣昌县"
                },
                {
                    "code": "500227",
                    "name": "璧山县"
                },
                {
                    "code": "500228",
                    "name": "梁平县"
                },
                {
                    "code": "500229",
                    "name": "城口县"
                },
                {
                    "code": "500230",
                    "name": "丰都县"
                },
                {
                    "code": "500231",
                    "name": "垫江县"
                },
                {
                    "code": "500232",
                    "name": "武隆县"
                },
                {
                    "code": "500233",
                    "name": "忠县"
                },
                {
                    "code": "500234",
                    "name": "开县"
                },
                {
                    "code": "500235",
                    "name": "云阳县"
                },
                {
                    "code": "500236",
                    "name": "奉节县"
                },
                {
                    "code": "500237",
                    "name": "巫山县"
                },
                {
                    "code": "500238",
                    "name": "巫溪县"
                },
                {
                    "code": "500240",
                    "name": "石柱土家族自治县"
                },
                {
                    "code": "500241",
                    "name": "秀山土家族苗族自治县"
                },
                {
                    "code": "500242",
                    "name": "酉阳土家族苗族自治县"
                },
                {
                    "code": "500243",
                    "name": "彭水苗族土家族自治县"
                },
                {
                    "code": "500381",
                    "name": "江津区"
                },
                {
                    "code": "500382",
                    "name": "合川区"
                },
                {
                    "code": "500383",
                    "name": "永川区"
                },
                {
                    "code": "500384",
                    "name": "南川区"
                },
                {
                    "code": "500385",
                    "name": "其它区"
                }
            ]
        },
        {
            "code": "510000",
            "name": "四川省",
            "children": [
                {
                    "code": "510100",
                    "name": "成都市"
                },
                {
                    "code": "510300",
                    "name": "自贡市"
                },
                {
                    "code": "510400",
                    "name": "攀枝花市"
                },
                {
                    "code": "510500",
                    "name": "泸州市"
                },
                {
                    "code": "510600",
                    "name": "德阳市"
                },
                {
                    "code": "510700",
                    "name": "绵阳市"
                },
                {
                    "code": "510800",
                    "name": "广元市"
                },
                {
                    "code": "510900",
                    "name": "遂宁市"
                },
                {
                    "code": "511000",
                    "name": "内江市"
                },
                {
                    "code": "511100",
                    "name": "乐山市"
                },
                {
                    "code": "511300",
                    "name": "南充市"
                },
                {
                    "code": "511400",
                    "name": "眉山市"
                },
                {
                    "code": "511500",
                    "name": "宜宾市"
                },
                {
                    "code": "511600",
                    "name": "广安市"
                },
                {
                    "code": "511700",
                    "name": "达州市"
                },
                {
                    "code": "511800",
                    "name": "雅安市"
                },
                {
                    "code": "511900",
                    "name": "巴中市"
                },
                {
                    "code": "512000",
                    "name": "资阳市"
                },
                {
                    "code": "513200",
                    "name": "阿坝藏族羌族自治州"
                },
                {
                    "code": "513300",
                    "name": "甘孜藏族自治州"
                },
                {
                    "code": "513400",
                    "name": "凉山彝族自治州"
                }
            ]
        },
        {
            "code": "520000",
            "name": "贵州省",
            "children": [
                {
                    "code": "520100",
                    "name": "贵阳市"
                },
                {
                    "code": "520200",
                    "name": "六盘水市"
                },
                {
                    "code": "520300",
                    "name": "遵义市"
                },
                {
                    "code": "520400",
                    "name": "安顺市"
                },
                {
                    "code": "522200",
                    "name": "铜仁地区"
                },
                {
                    "code": "522300",
                    "name": "黔西南布依族苗族自治州"
                },
                {
                    "code": "522400",
                    "name": "毕节地区"
                },
                {
                    "code": "522600",
                    "name": "黔东南苗族侗族自治州"
                },
                {
                    "code": "522700",
                    "name": "黔南布依族苗族自治州"
                }
            ]
        },
        {
            "code": "530000",
            "name": "云南省",
            "children": [
                {
                    "code": "530100",
                    "name": "昆明市"
                },
                {
                    "code": "530300",
                    "name": "曲靖市"
                },
                {
                    "code": "530400",
                    "name": "玉溪市"
                },
                {
                    "code": "530500",
                    "name": "保山市"
                },
                {
                    "code": "530600",
                    "name": "昭通市"
                },
                {
                    "code": "530700",
                    "name": "丽江市"
                },
                {
                    "code": "530800",
                    "name": "普洱市"
                },
                {
                    "code": "530900",
                    "name": "临沧市"
                },
                {
                    "code": "532300",
                    "name": "楚雄彝族自治州"
                },
                {
                    "code": "532500",
                    "name": "红河哈尼族彝族自治州"
                },
                {
                    "code": "532600",
                    "name": "文山壮族苗族自治州"
                },
                {
                    "code": "532800",
                    "name": "西双版纳傣族自治州"
                },
                {
                    "code": "532900",
                    "name": "大理白族自治州"
                },
                {
                    "code": "533100",
                    "name": "德宏傣族景颇族自治州"
                },
                {
                    "code": "533300",
                    "name": "怒江傈僳族自治州"
                },
                {
                    "code": "533400",
                    "name": "迪庆藏族自治州"
                }
            ]
        },
        {
            "code": "540000",
            "name": "西藏",
            "children": [
                {
                    "code": "540100",
                    "name": "拉萨市"
                },
                {
                    "code": "542100",
                    "name": "昌都地区"
                },
                {
                    "code": "542200",
                    "name": "山南地区"
                },
                {
                    "code": "542300",
                    "name": "日喀则地区"
                },
                {
                    "code": "542400",
                    "name": "那曲地区"
                },
                {
                    "code": "542500",
                    "name": "阿里地区"
                },
                {
                    "code": "542600",
                    "name": "林芝地区"
                }
            ]
        },
        {
            "code": "610000",
            "name": "陕西省",
            "children": [
                {
                    "code": "610100",
                    "name": "西安市"
                },
                {
                    "code": "610200",
                    "name": "铜川市"
                },
                {
                    "code": "610300",
                    "name": "宝鸡市"
                },
                {
                    "code": "610400",
                    "name": "咸阳市"
                },
                {
                    "code": "610500",
                    "name": "渭南市"
                },
                {
                    "code": "610600",
                    "name": "延安市"
                },
                {
                    "code": "610700",
                    "name": "汉中市"
                },
                {
                    "code": "610800",
                    "name": "榆林市"
                },
                {
                    "code": "610900",
                    "name": "安康市"
                },
                {
                    "code": "611000",
                    "name": "商洛市"
                }
            ]
        },
        {
            "code": "620000",
            "name": "甘肃省",
            "children": [
                {
                    "code": "620100",
                    "name": "兰州市"
                },
                {
                    "code": "620200",
                    "name": "嘉峪关市"
                },
                {
                    "code": "620300",
                    "name": "金昌市"
                },
                {
                    "code": "620400",
                    "name": "白银市"
                },
                {
                    "code": "620500",
                    "name": "天水市"
                },
                {
                    "code": "620600",
                    "name": "武威市"
                },
                {
                    "code": "620700",
                    "name": "张掖市"
                },
                {
                    "code": "620800",
                    "name": "平凉市"
                },
                {
                    "code": "620900",
                    "name": "酒泉市"
                },
                {
                    "code": "621000",
                    "name": "庆阳市"
                },
                {
                    "code": "621100",
                    "name": "定西市"
                },
                {
                    "code": "621200",
                    "name": "陇南市"
                },
                {
                    "code": "622900",
                    "name": "临夏回族自治州"
                },
                {
                    "code": "623000",
                    "name": "甘南藏族自治州"
                }
            ]
        },
        {
            "code": "630000",
            "name": "青海省",
            "children": [
                {
                    "code": "630100",
                    "name": "西宁市"
                },
                {
                    "code": "632100",
                    "name": "海东地区"
                },
                {
                    "code": "632200",
                    "name": "海北藏族自治州"
                },
                {
                    "code": "632300",
                    "name": "黄南藏族自治州"
                },
                {
                    "code": "632500",
                    "name": "海南藏族自治州"
                },
                {
                    "code": "632600",
                    "name": "果洛藏族自治州"
                },
                {
                    "code": "632700",
                    "name": "玉树藏族自治州"
                },
                {
                    "code": "632800",
                    "name": "海西蒙古族藏族自治州"
                }
            ]
        },
        {
            "code": "640000",
            "name": "宁夏",
            "children": [
                {
                    "code": "640100",
                    "name": "银川市"
                },
                {
                    "code": "640200",
                    "name": "石嘴山市"
                },
                {
                    "code": "640300",
                    "name": "吴忠市"
                },
                {
                    "code": "640400",
                    "name": "固原市"
                },
                {
                    "code": "640500",
                    "name": "中卫市"
                }
            ]
        },
        {
            "code": "650000",
            "name": "新疆",
            "children": [
                {
                    "code": "650100",
                    "name": "乌鲁木齐市"
                },
                {
                    "code": "650200",
                    "name": "克拉玛依市"
                },
                {
                    "code": "652100",
                    "name": "吐鲁番地区"
                },
                {
                    "code": "652200",
                    "name": "哈密地区"
                },
                {
                    "code": "652300",
                    "name": "昌吉回族自治州"
                },
                {
                    "code": "652700",
                    "name": "博尔塔拉蒙古自治州"
                },
                {
                    "code": "652800",
                    "name": "巴音郭楞蒙古自治州"
                },
                {
                    "code": "652900",
                    "name": "阿克苏地区"
                },
                {
                    "code": "653000",
                    "name": "克孜勒苏柯尔克孜自治州"
                },
                {
                    "code": "653100",
                    "name": "喀什地区"
                },
                {
                    "code": "653200",
                    "name": "和田地区"
                },
                {
                    "code": "654000",
                    "name": "伊犁哈萨克自治州"
                },
                {
                    "code": "654200",
                    "name": "塔城地区"
                },
                {
                    "code": "654300",
                    "name": "阿勒泰地区"
                },
                {
                    "code": "659001",
                    "name": "石河子市"
                },
                {
                    "code": "659002",
                    "name": "阿拉尔市"
                },
                {
                    "code": "659003",
                    "name": "图木舒克市"
                },
                {
                    "code": "659004",
                    "name": "五家渠市"
                }
            ]
        },
        {
            "code": "710000",
            "name": "台湾省",
            "children": [
                {
                    "code": "710100",
                    "name": "台北市"
                },
                {
                    "code": "710200",
                    "name": "高雄市"
                },
                {
                    "code": "710300",
                    "name": "台南市"
                },
                {
                    "code": "710400",
                    "name": "台中市"
                },
                {
                    "code": "710500",
                    "name": "金门县"
                },
                {
                    "code": "710600",
                    "name": "南投县"
                },
                {
                    "code": "710700",
                    "name": "基隆市"
                },
                {
                    "code": "710800",
                    "name": "新竹市"
                },
                {
                    "code": "710900",
                    "name": "嘉义市"
                },
                {
                    "code": "711100",
                    "name": "新北市"
                },
                {
                    "code": "711200",
                    "name": "宜兰县"
                },
                {
                    "code": "711300",
                    "name": "新竹县"
                },
                {
                    "code": "711400",
                    "name": "桃园县"
                },
                {
                    "code": "711500",
                    "name": "苗栗县"
                },
                {
                    "code": "711700",
                    "name": "彰化县"
                },
                {
                    "code": "711900",
                    "name": "嘉义县"
                },
                {
                    "code": "712100",
                    "name": "云林县"
                },
                {
                    "code": "712400",
                    "name": "屏东县"
                },
                {
                    "code": "712500",
                    "name": "台东县"
                },
                {
                    "code": "712600",
                    "name": "花莲县"
                },
                {
                    "code": "712700",
                    "name": "澎湖县"
                }
            ]
        },
        {
            "code": "810000",
            "name": "香港",
            "children": [
                {
                    "code": "810100",
                    "name": "香港岛"
                },
                {
                    "code": "810200",
                    "name": "九龙"
                },
                {
                    "code": "810300",
                    "name": "新界"
                }
            ]
        },
        {
            "code": "820000",
            "name": "澳门",
            "children": [
                {
                    "code": "820100",
                    "name": "澳门半岛"
                },
                {
                    "code": "820200",
                    "name": "离岛"
                }
            ]
        },
        {
            "code": "990000",
            "name": "海外",
            "children": [
                {
                    "code": "990100",
                    "name": "海外"
                }
            ]
        }
    ]
}
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是一个简单的Java代码示例,演示如何实现树形结构模糊搜索: ```java public class TreeNode { private String value; private List<TreeNode> children; // 构造函数 public TreeNode(String value) { this.value = value; this.children = new ArrayList<TreeNode>(); } // 添加子节点 public void addChild(TreeNode child) { this.children.add(child); } // 模糊搜索 public List<TreeNode> fuzzySearch(String keyword) { List<TreeNode> result = new ArrayList<TreeNode>(); if (this.value.contains(keyword)) { result.add(this); } for (TreeNode child : this.children) { result.addAll(child.fuzzySearch(keyword)); } return result; } } ``` 在上述代码中,`TreeNode`类表示树的节点,包括值和子节点列表两个属性。其中,`addChild`方法用于添加子节点,`fuzzySearch`方法实现了模糊搜索功能。具体实现中,首先判断当前节点的值是否包含关键字,如果是则将该节点加入到搜索结果集中;然后对子节点进行递归搜索,并将搜索结果添加到结果集中;最后返回结果集。 使用时,可以先构建一棵树,然后调用根节点的`fuzzySearch`方法进行搜索,例如: ```java // 构建树 TreeNode root = new TreeNode("root"); root.addChild(new TreeNode("node1")); root.addChild(new TreeNode("node2")); root.children.get(0).addChild(new TreeNode("node11")); root.children.get(0).addChild(new TreeNode("node12")); root.children.get(1).addChild(new TreeNode("node21")); root.children.get(1).addChild(new TreeNode("node22")); // 模糊搜索 List<TreeNode> result = root.fuzzySearch("1"); System.out.println(result); ``` 上述代码中,首先构建了一棵树,然后搜索其中值包含关键字“1”的节点,并将搜索结果打印出来。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值