Java集合中Map的介绍

  • 什么是Map数据结构
    • 底层就是一个数组结构,数组中的每一项又是一个链表,即数组和链表的结合体
    • table是数组,数组的元素是Entry
    • Entry元素是一个key-value键值对,它持有一个指向下一个Entry元素的引用,table数组的每个Entry元素同时也作为当前Entry链表的首节点,也指向了该链表的下一个Entry元素
  • 常见的实现类
    • HashMap
      • 一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射
      • 是基于hash的原理,使用put(key, value)存储对象到HashMap中,使用get(key)从HashMap中获取对象。当put()方法传递键和值时,会先对键调用hashCode()方法,计算并返回的hashCode是用于找到Map数组的bucket位置来存储Entry对象的,是非线程安全的,所以HashMap操作速度很快
    • TreeMap
      • 在数据的存储过程中,能够自动对数据进行排序,实现了SortedMap接口,它是有序的集合
      • TreeMap使用的存储结构是平衡二叉树,也称为红黑树
      • 默认排序规则:使用key的字典顺序来排序(升序),也可以自定义排序规则,要实现Comparator接口
posted @ 2021-01-18 20:21  Gen2021  阅读(55)  评论(0编辑  收藏  举报