Map集合的三个子实现类HashMap,LinkedHashMap,TreeMap

.HashMap
    1.基于哈希表的Map接口的实现,此类的底层数据结构是哈希表,无序且唯一,他不保证顺序永久不变,线程不安全,效率高,并且允许使用null值和null键。
    2.put()方法:往Map集合中添加键和值。注意:一个键只能对应一个值,如果键相同则值覆盖
    3.方法:
        map.clear():清空集合中的所有元素 
        map.remove():删除某一个键值对
        boolean containsKey(Object key):判断集合是否包含指定的键
        boolean containsValue(Object value):判断集合是否包含指定的值
        boolean isEmpty():判断集合是否为空
        get():获取集合中键所对应的值
        values():获取所有的值 
        keySet():获取所有的键 
        size():获取集合的长度
    4.集合的遍历
        (1)遍历map集合方式1  键找值  keySet()  get()
        Set<String> keys = hm.keySet();
        for(String key:keys){
            String v= hm.get(key);
            System.out.println(key+"===="+v);
        }
        (2)遍历map集合的方式2
        // Entry 键值对 对象
        Set<Map.Entry<String, String>> entries = hm.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            // K getKey()
            //          返回与此项对应的键。
            // V getValue()
            //          返回与此项对应的值。
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + "===" + value);
        }
二.LinkedHashMap
    底层数据结构是链表和哈希表,存储的元素有序且唯一,线程不安全,效率高  (唯一性也是靠着重写hashcode方法和equals方法来实现的)
三.TreeMap
        底层数据结构是二叉树,可以对键进行排序且键是唯一的,不允许null键,线程不安全,效率高(如果TreeMap的泛型的键是自定义的引用类型的话,他根据构造方法的不同,有两种排序的方法,一种是自然排序(采用无参构造时):自然排序需要元素去实现compareble接口,并且重写compareTO方法,最后结果的顺序是根据返回值的正负和0来决定的。另外一种是比较器排序(采用有参构造时),需要重写compleator方法,根据返回值的正负和0决定排序顺序)。

猜你喜欢

转载自blog.csdn.net/woshijinfeixi/article/details/81433104