知识
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这样的容器只能装类,所以基本类型必须包装