容器
文章平均质量分 79
软件宫城狮
低生活饲养着高科技,高科技创造着低生活,循环往复,难以挣脱。
展开
-
HashMap源码解读
概要 JDK1.7中的HashMap底层实现为数组+链表,JDK1.7中的HashMap存在问题:多线程状态下内部数组扩容时有可能会导致死循环。所以,JDK1.8中对HashMap进行了重新实现,其底层实现为数组+链表+红黑树。提高了HashMap的性能。 HashMap源码解读 内部属性 static final int DEFAULT_INITIAL_CAPACITY 默认初始化容量,默认值16,要求改值必须为2的幂次方数。至于为何必须是2的幂次方数,简单来说就是为了提高map 的key在放入转载 2021-09-10 17:01:44 · 323121 阅读 · 0 评论 -
hashMap问题答案
hashMap 数组加链表 数组:采用一段连续的存储单元来存储数据 特点:查询0(1) 删除插入0(N) 总结查询快,插入慢 链表:链表是一种物理存储 单元上非连续、非顺序的存储结构 特点:插入、删除时间复杂度0(1) 查询遍历时间复杂度0(N),总结:插入快 查找慢 hashmap put值的时候(n是集合的容量) (n - 1) & hash 计算该元素在entry[]数组中的位置 为了提高取余操作的效率,用了按位与& 当需要对2的次幂进行求余时,可以是使用&运算符来代替原创 2021-09-09 13:36:57 · 323252 阅读 · 0 评论