天天看点

java基础-Java集合框架-Map接口-概述Java集合框架-Map接口-概述

Java集合框架-Map接口-概述

Map接口继承树

java基础-Java集合框架-Map接口-概述Java集合框架-Map接口-概述

Map接口的子类实现

  • Map:双列数据,存储key-value对的数据
    • HashMap:作为Map的主要实现类,线程不安全的,效率高,存储null的key和value
      • LinkedHashMap:保证遍历Map元素时,可以按照添加的顺序实现遍历。
        • 原因:在原有的HashMap底层基础上,添加了一对指针prev和next,指向前一个和后一个元素
        • 对于频繁的遍历操作,LinkedHashMap的效率高于HashMap
    • HashMap的底层
      • 数组+链表(jdk7)
      • 数组+链表+红黑树(jdk8)
    • TreeMap:保证按照添加的tree-value对进行排序,实现按照key排序遍历。(使用的是key的自然排序和定制排序
      • TreeMap底层使用的是红黑树
    • Hashtable:作为古老的Map接口的实现类,线程安全的,效率低,不能存储null的key和value
      • Properties:常用来处理配置文件。key和value都是String类型

Map接口的描述

  • Map中key是无序,不能重复的,value无序,可重复的。key无序,value无序
    • key使用Set存储,无序,不可重复的。–》要求HashMap中的key所在的类要重写equals()和hashCode()方法,TreeMap的话则需要定义自然排序或者定制排序
    • value使用collection存,无序的,可以重复的。----》value所在的类要重写equals()
    • 一个键值对:key-value构成了一个Entry对象
    • Map中的Entry对象:无序的,不可重复的,使用Set存储所有的entry
java基础-Java集合框架-Map接口-概述Java集合框架-Map接口-概述

Map接口:常用方法

  • 添加、删除、修改操作:
    • Object put(Object key,Object value):将指定key-value添加到(或修改)当前map对象中