Java的Map数据结构

Map接口的最常见的实现类:
Java的Map数据结构_第1张图片

Map接口中的常用方法:

遍历Map:
Java的Map数据结构_第2张图片

Entry
Java的Map数据结构_第3张图片

 /*
    key:Person类
    value:String 可以重复
    自定义对象做为Key需要重写hashCode和equals方法
     */
    private static void show02()
    {
        HashMap<Person,String> hashMap=new HashMap<>();
        hashMap.put(new Person("张山",18),"英国");
        hashMap.put(new Person("秦始皇",25),"秦国");
        hashMap.put(new Person("普汀",28),"俄罗斯");
        hashMap.put(new Person("张山",18),"美国");
        //使用entrySet
        Set<Map.Entry<Person, String>> entries = hashMap.entrySet();
        for (Map.Entry<Person, String> entry : entries) {
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        }
    }

    /*
    key:String类型
    value:Person类型
        value可以重复
     */
    private static void show01()
    {
        //创建HashMap集合
        HashMap<String,Person> map=new HashMap<>();
        map.put("北京",new Person("张山",18));
        map.put("上海",new Person("李四",19));
        map.put("广州",new Person("王五",20));
        map.put("北京",new Person("赵柳",18));

        //遍历:keySet
        Set<String> strings = map.keySet();
        for (String string : strings) {
            Person person = map.get(string);
            System.out.println(person.getName()+":"+person.getAge());
        }
    }

Map接口的另一个实现类:HashTable
1)不能存储空
2)最早期的双列集合
3)单线程

练习:
计算一个字符串中字符出现的次数
1)使用Scanner获取用户输入的一个字符串
2)String类的方法toCharArray,把字符串转换为一个字符数组
3)HashMap 统计

使用Map集合中的方法判断获取到的字符是否存储在map集合中
1.map集合中的方法containsKey

 Scanner scanner = new Scanner(System.in);
       System.out.println("请输入一个字符串");
       String str=scanner.next();

       //2)创建Map集合
       HashMap<Character,Integer> map=new HashMap<>();
       for(char c:str.toCharArray())
       {
           if(map.containsKey(c)){
               Integer integer = map.get(c);
               map.put(c,integer+1);
           }
           else
           {
               map.put(c,1);
           }
       }
       //3遍历map集合,输出结果
       for(Character key :map.keySet())
       {
           Integer integer = map.get(key);
          // System.out.println(key+' '+integer);
       }

Java的Map数据结构_第4张图片

你可能感兴趣的:(Java精进)