HashMap、LinkedHashMap、TreeMap的区别

一、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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值