zoukankan      html  css  js  c++  java
  • JAVA中集合HashMap嵌套联系

    1. 有这样一组数据”henan zhengzhou gongyi,henan zhengzhou xingyang,henan Kaifeng lankao,Jiangsu Suzhou gusu,jiangsu nanjing xuanwu“。每个单元用‘,’分割。单元内三个单词的意思分别是省,市,县(区)。请设计一个类,要求将上述数据存入后,拥有以下功能:

      1. 给定一个省可以列举出该省所有的市。

      2. 给定一个省可以列举出该省所有的县(区)。

      3. 给定一个省可以查到该省县(区)的数量。

    测试类
    import java.util.*;
    
    public class HomeWork {
        public static void main(String[] args) {
    
            String date = "henan zhengzhou gongyi,henan zhengzhou xingyang,henan Kaifeng lankao,Jiangsu Suzhou gusu,jiangsu nanjing xuanwu";
            RegionUtil.loadData(date);
            RegionUtil.getCitys("henan");
            RegionUtil.getCountries("henan");
            RegionUtil.getCountrieNumber("henan");
    
        }

    }

    import java.util.*;
    
    public class RegionUtil {
        //用来存储地区数据
        private static HashMap<String,Map> hashMap = new HashMap();
        //用来初始化数据
        public static void loadData(String date) {
            //先将字符串按照“,”分割
            String[] split = date.split(",");
            //再遍历数组分别将省市县归类
            for (int i = 0; i < split.length; i++) {
                String[] strings = split[i].split(" ");
                //省分
                String province = strings[0];
                //市
                String city = strings[1];
                //县(乡镇)
                String country = strings[2];
                //在存放省-市的map集合中,找hashmap中是否存在省,若存在将省所对应的市,放入value中,value又是一个map集合
                if (hashMap.containsKey(province)){
                    //如果已存在,则将省对应的市添加到citys的HashMap中
                    HashMap citys = (HashMap) hashMap.get(province);
                    if (citys.containsKey(city)){
                        //如果包含了则将对应的县添加到list集合中
                        List countries = (List) citys.get(city);
                        countries.add(country);
                        citys.put(city,countries);
                    }else {
                        //如果不存在市
                        List<String> list = new ArrayList<>();
                        list.add(country);
                        citys.put(city,list);
                    }
                }else {
                    //如果不存在省
                    //创建list用来存放县
                    ArrayList<String> list = new ArrayList<>();
                    list.add(country);
                    //创建HashMap用来保存市
                    HashMap<String, List> map = new HashMap<>();
                    map.put(city,list);
                    //添加省-市
                    hashMap.put(province,map);
                }
            }
        }
    
        public static void getCitys(String province) {
            //获取省
            HashMap map = (HashMap) hashMap.get(province);
            for (Object key :
                    map.keySet()) {
                System.out.println("city:"+key);
            }
        }
        public static void getCountries(String province) {
            //获取县
            HashMap map = (HashMap) hashMap.get(province);
            for (Object key :
                    map.keySet()) {
                System.out.println("country:"+map.get(key));
            }
        }
        public static void getCountrieNumber(String province) {
            //获取县的个数
            HashMap map = (HashMap) hashMap.get(province);
            int count = 0;
            for (Object key :
                    map.keySet()) {
                count+=((List)map.get(key)).size();
            }
            System.out.println("size:"+count);
        }
    }
  • 相关阅读:
    flask——flask-sqlachemy中的一对多,多对多关系
    flask——flask-sqlachemy的使用,模块划分
    Ubuntu下安装JDK和Open Jdk
    flask——全文检索
    Flask——部署
    在Ubuntu上安装Chrome浏览器和ChromeDriver
    jinja2模板语言的循环序号
    CentOS7安装mongodb
    CentOS7安装PhantomJS
    使用screen在后台运行程序
  • 原文地址:https://www.cnblogs.com/pigdata/p/10305642.html
Copyright © 2011-2022 走看看