查询数据库做出二级联动的map集合

数据库结构:全国省市区数据,

img

mybatis拿到List<实体类>集合,

要求最后形成map<String,List<String.>> 格式

map<'河北省' , List<'石家庄市', '唐山市' ,'秦皇岛市',>>

不能在for循环里面查询数据库

数据都有了,那你在代码里面过滤出来呗。
遍历所有的省,每遍历一个省,找出对应的市。存放在map集合中。


 public Map<String, List<String>> getProvince() {
        Map<String, List<String>> map = new HashMap<>();
        List<SysProvinceStreetEntity> province = sysProvinceStreetService.getProvince();
        List<SysProvinceStreetEntity> city = sysProvinceStreetService.getCity();
        List<String> province_de_weight_list = province.stream().map(SysProvinceStreetEntity::getNameProvince).distinct().collect(Collectors.toList());
        for(String pdwlist :province_de_weight_list){
            List<String> citylist = new ArrayList<>();
            for (SysProvinceStreetEntity o :city){
                if (pdwlist .equals(o.getNameCity())){
                    citylist.add(o.getNameCounty());
                }
            }
            map.put(pdwlist,citylist);
            for (SysProvinceStreetEntity s : province) {
                if (s.getNameProvince().equals(pdwlist)){
                    citylist.add(s.getNameCity());
                }
            }
            map.put(pdwlist,citylist);
        }
        return map;
    }