欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 集合晨考day18

集合晨考day18

2025/9/18 18:22:54 来源:https://blog.csdn.net/weixin_63599588/article/details/144796508  浏览:    关键词:集合晨考day18

1.JDK8HashMap数据结构
数组 + 单向链表 + 红黑树
2.HashMap特点(是否有序,是否可为null,是否可重复,
是否线程安全,初始容量多少,负载因子的含义,扩容多
少)
无序 可以为null 键不能重复 值可以重复 线程不安全 初始数组长度为16 负载因子
0.75 表示数组的使用率达到75% 就扩容 扩容为原数组长度的2倍
3.HashMap和Hashtable的区别
HashMap初始化长度为0的数组 第一次添加元素数组初始化为16
Hashtable初始化长度为11的数组
HashMap线程不安全 Hashtable线程安全
HashMap扩容2倍 Hashtable扩容2倍 + 1
4.Properties类,推荐使用什么方法存放数据,不推荐使
用什么方法,为什么
setProperty() 不推荐使用put 或者 putAll 方法 因为这两个方法允许添加非String数

5.遍历HashMap的几种方式
1.获取所有的键 keySet()
2.获取所有的值 values()
3.获取所有建制对的组合 entrySet()
以上三种的迭代器形式
6.说出你所知道的集合体系中的接口和实现类分别都有哪

Collection
List ArrayList LinkedList Vector
Set HashSet LinkedHashSet Treeset

Map HashMap LinkedHashMap TreeMap Hashtable Properties
7.HashMap添加元素的过程,什么时候扩容,什么时候转
换红黑树,什么时候取消转换红黑树?
使用hash值对数组长度-1 进行与运算 得到存在数组中的下标
如果此位置没有数据 则直接存放
如果此位置有数据
比较是否为完全相同的键
如果键完全相同 则直接覆盖
如果键不同 向下添加 判断为树节点 还是链表节点 分别以不同的方式添加
数组的使用率达到75%
当链表的长度大于8 并且数组的长度大于64转红黑树
当链表的长度小于6
8.TreeMap存储自定义的数据类型 有什么要求
必须实现Comparable接口 或者 编写 实现Comparator接口的比较器 来定义比较规则
9.HashSet去除重复元素的依据是什么?
两个对象equals比较为true hashCode相同 则认为是重复的对象
10.Comparable和Comparator接口的区别?
Comparable接口属于自然排序 因为是直接在类中书写
Comparator属于非自然排序 因为是单独书写排序类

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词