小菜狮子 2018-11-24 02:17 采纳率: 60%
浏览 1118
已结题

HashMap的Entry链问题

HashMap的Entry链不太清楚具体作用,HashMapkey是不能重复的吧,那他的key重复value不重复就形成了一个Entry链,value覆盖。那他之前存储的entry是有什么作用。。。不是性能浪费了吗

  • 写回答

2条回答 默认 最新

  • 流浪发师 2018-11-24 02:35
    关注

    Entry链是为了解决Hash冲突而存在的,不同的key可能hash值一样,这个时候就会散列在同一个position上面,解决Hash冲突的办法有很多种,
    Java使用的就是拉链法,即hash值一样的就形成一条链,HashMap的key是不能重复的,因为需要进行查找,如果key不唯一,就不用说查找了,
    HashMap的jdk1.8版本以上用了新的办法,当拉链个数大于8个时候采用红黑树,这样可以提高查找效率,重新hash之后,如果链数小于6,又会
    重新转为链表结构。因此出现Hash冲突,性能是必然要打折扣的

    评论

报告相同问题?

悬赏问题

  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥50 Oracle Kubernetes服务器集群主节点无法访问,工作节点可以访问
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架
  • ¥15 有关sql server business intellige安装,包括SSDT、SSMS。
  • ¥15 stm32的can接口不能收发数据
  • ¥15 目标检测算法移植到arm开发板
  • ¥15 利用JD51设计温度报警系统