关于面试中问到HashMap的实现

关于HashMap和ConcurrentHashMap的实现方法,在jdk1.8中实现方法好像有了很大的变化。各位在面试中遇到这个问题是怎么回答的呢

全部评论
JDK1.8的在JDK1.7的基础上增加了红黑树这种数据结构。当链表长度默认超过8时,链表就转换为红黑树,使得在桶里面查找数据的复杂度从O(n)降到O(logn),从而提高查找速度。
点赞 回复 分享
发布于 2018-04-11 10:17
1.8之前HashMap是数组加链表,1.8改成数组加链表或红黑树,当冲突达到一定值时,链表转换成红黑树
点赞 回复 分享
发布于 2016-04-06 13:10
在JDK1.7之前,HashMap的底层是数组和链表实现的,数组用来存储键和值,链表        用来解决hash冲突。因为HashMap使用key的hashCode来寻找存储位置,不同的     key可能具有相同的hashCode,
点赞 回复 分享
发布于 2018-04-11 10:17
当数组大于8时,自动转化成红黑树,
点赞 回复 分享
发布于 2016-04-07 22:27
把你知道的都说了。
点赞 回复 分享
发布于 2016-04-06 15:39
分开说一下好了
点赞 回复 分享
发布于 2016-04-06 13:11

相关推荐

一面(5.30)45min自我介绍说说java中常用的集合linkedList 和 ArrayList的区别以及在什么时候会使用如果现在要自己实现一个hashmap,会怎么设计链表法和开放寻址有了解过吗?有哪些数据结构运用了开放寻址法说一下运行时数据区域里面有什么新实例化一个对象在堆上的一个分配流程是什么对gc的了解synchronized和juc包下面的工具类在日常开发中是怎么用的如何理解synchronized对性能有影响偏向锁是什么synchronized锁升级的流程threadlocal实现原理在开发中用到threadlocal中有没有什么坑为什么要在finally移除掉这个threadlocal强引用 弱引用 软引用 虚引用是什么concurrentHashMap的实现原理如何理解悲观锁和乐观锁,为什么认为乐观锁的性能会更好一次上下文切换大概要消耗多少性能,cpu空转又要消耗多少资源上下文切换的流程,上下文切换本质synchronized锁上了一个线程后,对于多核系统来说cpu资源可能会是什么状态spring的aop是基于什么实现的对cglib的了解,它是怎么去实现代理的在做项目的时候遇到特别有成就感的一件事在一个交易系统中,后端程序去调用微信支付接口,用户在使用微信支付时很久都没有支付,而后端程序并不知道支付成功还是支付失败,要怎么解决这种场景的发生为什么选择大二出来实习你以后是更希望成为一个更偏向业务的程序员还是更偏向技术的程序员校内的经历反问二面(6.5) 40min自我介绍讲一下mybatis拦截器的实现思路和应用场景数据隔离是怎么做的假如不限制时间不限制成本,实现数据隔离的方法threadLocal出现的bug怎么解决动态线程池是怎么设计的定时任务对动态线程池的作用假如说现在想要监控线程池的一些状态,你会想监控哪些属性讲一下双token机制探讨如何实现用户在token即将过期时无感的获取到新的token说一下对滑动窗口的理解想要实现随着时间变化的排行榜top100怎么实现问职业规划接不接受转go语言反问
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务