zoukankan      html  css  js  c++  java
  • Map集合

    一、Map 集合接口

            Map<K,V>: K:key,键; V:value,值。
                  该集合存储键值对,是成对存储的,而且存储要保证键的唯一性。
        
            常用方法:

              1、增加:
                  V put(K key, V value) :当存入相同键的时候,新value值会替换旧值,并返回旧值。
                  void putAll(Map<? extends K,? extends V> m)
              2、删除:
                  void clear()
                  V remove(Object key)

              3、判断:
                  boolean containsKey(Object key)
                  boolean containsValue(Object value)
                  boolean isEmpty()
              4、获取:
                  V get(Object key) :返回该键上的value值,可以通过返回值来判断一个键是否存在。
                  int size() :返回长度。
                  Collection<V> values() :返回一个collection集合,其中存储了map集合中的value值。

                  Set<Map.Entry<K,V>> entrySet()
                  Set<K> keySet()

         Map集合没有迭代器,所以我们使用其他方法。

            1)、Set<k> KeySet(): 将Map集合中所有的键取出存入Set集合中,再使用Set的迭代器遍历Set集合中所有的键,拿到这些键过后,
                使用 Map集合的 get()方法,获得它们对应的值。

            2)、Set<Map.Entry<K,V>> entrySet(): 将Map集合中的映射关系取出存入到Set集合中,这个映射关系就是Map.Entry类型。
                之后使用Set集合的迭代器遍历Set集合,拿到Map.Entry的对象
                   通过调用这个Map.Entry对象的getKey() 和 getValue()方法来获取Map集合的键 与 值。

              Map.Entry<K,V>:Entry也是一个接口,它是Map接口的内部接口。

                interface Map<K,V>
                {
                    public static interface Entry<K,V>
                    {
                        public abstract K getKey();
                        public abstract V getValue();
                    }
                }





    二、Map的子类对象:

          1、Hashtable : 底层是Hash表数据结构,不能传入null键null值,此集合是线程同步的。《效率较低》

          2、HashMap : 底层是Hash表数据结构,允许使用null键null值,此集合线程非同步的。(其他与Hashtable基本相同)《效率较高》

          3、TreeMap : 底层是二叉树数据结构,线程不同步,可以用作Map集合中的建排序。


            Map集合与Set集合较为相似,原因是,Set集合 在底层多是调用的Map集合。

  • 相关阅读:
    矩阵的运算和分块
    组合数
    二项式定理
    Python 生成 PSK (PSK认证时,PMK就是PSK)
    ruby opposite of any?
    大大的问号之Ruby
    41 KMP子串查找算法
    字符串变量存储位置
    java中wait和notify
    java 动态代理
  • 原文地址:https://www.cnblogs.com/soficircle/p/6675972.html
Copyright © 2011-2022 走看看