当我们用list查找arr{2,5,8,4,6,9,3,1,17,10}时,假如我们需要7这个数字它是一个个去查找的,要查9次,它的时间复杂度是O(N)。而我们用map查找时17%10-->arr[7]它的时间复杂度是O(1)。
当用map时会发生碰撞
当碰撞发生多次后会退化成链表的形式。
当链表过长时会树化,当形成"树"的时候,它又会发生碰撞变成链表,这个时候我们就要用红黑树来代替,来保持平衡。
Map的优化
以图书馆找相同的书为例子
用双重for循环
用Map
Map要比双重for循环要快很多。
Map也存在着缺点:
像INSERT、DELETE、SEARCH在Map中是可以的,其它的方式也可以通过其它方式实现,但是会变的更加复杂,这个时候就可以考虑用list。