起步我们需要了解,到底什么是Map?
众所周知,map用于保存具有映射关系的数据,Map集合里保存着两组值,一组用于保存Map的key,另一组保存着Map的value。所有的key是不能重复的并且没有顺序
简单了解完毕后,我们需要知道一些常见的Map集合 HashMap 1 .HashMap的底层是一个哈希表/散列表的数据结构 JDK8之后,如果哈希表单向链表中的元素超过8个,单向链表将变成红黑树,当红黑树的节点数量小于6时,会重新把红黑树变成单向链表,那么问题来了! 什么是哈希表/散列表呢? 说到这,我们又需要回顾一些简单的数据结构 数组 :采用一段连续的储存单元来储存数据。对于指定下标的查找,时间复杂度为O(1),通过给定值进行查找,我们需要遍历数组,所以时间复杂度为O(n),对于一般的插入删除操作,因为数组元素要进行移动,所以时间复杂度也为O(n)。 线性链表 :对于链表的新增,删除等操作,因为链表的特殊性,仅需处理节点引用,所以时间复杂度为O(1),而要进行查找操作需要遍历链表,复杂度为O(n)。 二叉树 :对于一 颗相对平衡的有序二叉树,对其进行插入,查找,删除等操作平均复杂度为O(logn)。 哈希表 :相比上述几种数据结构,在哈希表中进行添加,删除,查找等操作,性能非常高,在不考虑哈希冲突下,仅需一次定位就能完成,时间复杂度为O(1)。 众所周知,数据结构的 物理储存结构 只有两种: 顺序储存结构和链式