数据结构Map—java描述(1)

        Map是一种按照键值对(key-value)的形式进行数据存储的数据结构,描述的是一种映射关系。键(key)即所存放数据的编号,值(value)即键所对应的值对象。键值具有唯一性,每个键只能映射一个值对象,同时键不允许重复。

     常用的方法:

           (1)  size() :获取Map尺寸,即Map所包含的key-value对总数;

           (2)  put(object key,object value):向Map中添加数据元素;

           (3)  remove(object key):根据键key删除所对应的值对象value,并返回被删除的value;

           (4)  containsKey(object obj):判断当前Map是否含键obj,若含有,则返回true,否则返回false;

           (5)  keySet():返回Map中所有键的组合;

           (6)   entrySet():将Map中的key-value存入集合,该集合的数据元素是Entry 类的对象,Entry类具有两个成员   变量key和value来描述原Map中的键和值对象;

            (7)   values():获取Map中的所有值对象来组成一个Collection对象。

      Map有三种结构:HashMap(散裂图),LinkedHashMap(链式散裂图),TreeMap(树形图)。

          (1)HashMap通过hash算法来排布存储Map中的键,也就是说HashMap中的数据元素并不是按照我们添加的     顺序排布的,存储的内存模式也不是连续的,其key值的排布而是通过Hash算法计算得到的。HashMap不能直接装入迭代器,而是将所有的键key装入迭代器,再进行遍历;或者是使用entry类,将所的数据元素转化为entry类的集合进行处理;
          (2)TreeMap是一种有序的映射关系图,每对key-value对在TreeMap中的存储是有序的排列的,当我们向     TreeMap中插入新的元素时,TreeMap可能全重新排序,所以TreeMap中的任何元素在整个映射组中是不固定的;

         (3)LinkHashMap是HashMap的一个子类,不同在于LinkedHahMap维护着一个应用于所有条目的的双重链   接列表,此列表定义了迭代的顺序,此顺序可以是插入顺序也可以是访问顺序。

         三种Map结构的比较:

          (1)HashMap存入的key-value对在取出的时候是随机的,它根据Hashcode值存储数据,根据key可以直接取值对象,具有很高的访问速度,因此在Map中插入、删除和定位元素,HashMapk是最好的选择;
          (2)TreeMap取出是排序后的 key-value对,因此按自然顺序或自定义顺序遍历,TreeMap是最好的选择;

          (3)若需要输出的顺序和输入的相同,则用LinkedHashMap可以很好的实现。


  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值