一、HashMap
new HashMap的时候有两个参数可填:长度(默认16)、负载因子(默认75%)
HashMap遍历取值有4种方法:
1、keySet()
2、Values()
3、EntrySet()-----推荐使用,可以获得key、value
4、EntrySet().iterator()
HashMap在put的时候会将key进行hashCode()获得hash值,然后再将值进行优化,再对其取余(除数为长度)来确定位置。如果map中的位置大于负载因子了,则会进行扩容,扩容后会重新分配位置。
HashMap初始化时的长度不一定是最后的长度,是2的最小幂的值大于等于设置的值。
二、LinkedHashMap
put时是有序的,链表结构
new LinkedHashMap的时候有三个参数可填:长度、负载因子、是否倒序
三、TreeMap
TreeMap在创建的时候可以使用内部类的方式进行创建Comparator,实现自定义排序
四、性能
在特定的场景下选择对应的map