java中Map

Map介绍:

      在java中非常常用,是一种key-value映射的集合,它的每一个元素都包含一对键对象和值对象。Map并没有继承Collection接口,并没有显示的继承任何接口。从Map集合中检索元素时,只要给出key(键值),就能够返回对应的value值对象。

     

Map功能:

        put(Object key,Object value)添加一个你想要放的东西与你想要的东西的相关联的key,key用来做唯一标识,这样将所要放的东西放到map中。

        get(Object key),通过唯一的标识key来查找我们所需要的东西(值)。

        containsKey(Object key),该方法能够判断我们是否有这个key值,保证key值唯一性

        containsValue(Object value),用来判断map中是否包含该value(我们想要的东西)    

   

    标准的Java类库中提供了多种不同的Map:HashMap,TreeMap,LinkedHashMap等,它们都实现了同样的接口Map,但各种不同map在效率和排序和生命周期等各有不同。    

Map分类:

     1、HashTable

         一种古老的Map实现,从JDK1.0版本就出现了。HashTable 是一个线程安全的Map实现,不允许使用null作为key或者value,如果想把null值放入到HashTable中,将会引发空指针的异常。

       2、HashMap
        典型的Map接口的实现类,是一个线程不安全的实现,性能相比HashTable来说更高一些,而且当有多个线程来访问同一个Map 值时,需要程序来维护同步性。
        HashMap中允许null值作为key或者value,由于key的唯一性,因此一个HashMap中最多只有一个key值为null的键值对,但可以有多个value为null的键值对。

     3、LinkedHashMap
       HashMap 的子类,使用双向链表来维护key-value对的次序(其实只考虑key的次序),由链表来维护Map的顺序,顺序与key-value插入时的顺序保持一致。
      由于需要维护元素插入的顺序,因此性能略低于HashMap。LinkedHashMap以链表来维护内部顺序,当需要顺序访问时全部元素时有较好的性能。
  
     4、TreeMap
       是一个红黑树数据结构(二叉树的一种),每个key-value对即对应一个节点,TreeMap存储key-value时,需要根据key节点进行排序。排序方式由两种:自然排序和定制排序。
       自然排序:key必须要实现Comparable 接口,有接口中方法进行排序。
       定制排序:创建TreeMap时,传入一个Comparator对象,该对象负责对TreeMap中的所有key进行排序,不需要实现Comparable接口。

      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值