hashMap的底层结构:数组+单项链表结构,数组中主要用于存放键的hash值,而链表中
-
中主要用于储存k-v结构的数据
- 在想HashMap假数据的时候:先比较hash值,看hash值是否再hash表存在在,如果不存在,
- 想HashMap中调价数据,如果存在,则比较Key是否相同?,如果想通知覆盖,如果不同,元素后使用单项链表追加数据
-
-----hashcode() & equals()
- 数组构成了HashMap中的Hash表,表的容量默认是16,表中可以存放的数据是:16*0.75个
- 超过这个数据,Hash表将会重建自动扩容,扩容后的大小是:16*2^n
相同的key在HashMap只能存在一个,
- 并且存在的是最早创建的哪一个,但是Value会覆盖为新的value
*我们在自定义的对象,在作为key的时候,一般都需要重写hashcoude()以及equals()方法
- 其目的在于做到hashmap中的key去重
HashMap与HashTable的区别,一个线程安全,一个不安全
- HashMap可以存放null值null键
- HashTable不能放null值null键
properties类似于HashMap
队列也是可以存放东西的容器
*存放方式:先进先出 类似于:排队。
*
-
- –>6 5 4 3 2 1 -->
-
- 消锋 限流.0
- 使用场景:
- 1.用于多线程之间存在数据交互
- 2.多系统之间数据交互