Collection(集合、HashMap、数组、Set)

知识

1、set转换成list集合 用来保存数据 可以回退并查询下一个
 List list = new ArrayList(A); 	
2、HashMap为什么负载因子默认为0.75
	HashMap其实是底层基于哈希函数实现的,但是哈希函数都有如下一个基本特性:根据同一哈希函数计算出的哈希值如果不同,那么输入值肯定也不同。但是,根据同一哈希函数计算出的哈希值如果相同,输入值不一定相同。
	两个不同的输入值,根据同一哈希函数计算出的哈希值相同的现象叫做碰撞。
	衡量一个哈希函数的好坏的重要指标就是发生碰撞的概率以及发生碰撞的解决方案。
	HashMap将数组和链表组合在一起
	HashMap中get元素的时候,也是需要定位到是数组中的哪条链表,然后再逐一遍历链表中的元素,直到查找到需要的元素为止。
但是,如果一个HashMap中冲突太高,那么数组的链表就会退化为链表。这时候查询速度会大大降低。
	一般来说,默认的负载因子(0.75)在时间和空间成本之间提供了很好的权衡。更高的值减少了空间开销,但增加了查找成本(反映在HashMap类的大多数操作中,包括get和put)。
	那么,为了保证负载因子(loadFactor) * 容量(capacity)的结果是一个整数,这个值是0.75(3/4)比较合理,因为这个数和任何2的幂乘积结果都是整数。
3、TreeSet有比较器的构造器可以修改构造器放重复的元素
	HashSet和LinkedList没有
4、TreeSet底层依赖于TreeMap  TreeMap由红黑树+桶实现 所以底层结构就是一个数组,数组中每一个元素又是一个红黑树.通过比较hash存放
5、八种基本数据类型并不属于类,必须包装才能成为类,比如:int------Integer
  而Vector这样的容器只能装类,所以基本类型必须包装

HashMap负载因子为什么是0.75

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值