• 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集合。

  • 相关阅读:
    惠普 HP 战66 AMD 4700U 烫手 发烫,使用 Ryzen Controller 温控
    双网卡、多网卡指定IP分别访问网卡(windows添加静态路由)
    战66 WIN11 亮度热键 快捷键无效
    编程语言界的丐帮 C#.NET 国密数字信封 民生银行
    开机启动VM WARE 某台虚拟机
    编程语言界的丐帮 C#.NET FRAMEWORK 4.6 EF 连接MYSQL
    C# .NET 云南农信国密签名(SM2)简要解析
    错误 CS1617 Invalid option '7.3' for /langversion; must be ISO1, ISO2, Default or an integer in range 1 to 6.
    windows 命令行调整跃点数
    C#.NET BC BouncyCastle 国密 SM2 解密遇到 Invalid point encoding 77
  • 原文地址:https://www.cnblogs.com/soficircle/p/6675972.html
Copyright © 2020-2023  润新知