2018优就业人保合作
400-650-7353
首页 > IT就业指南 > 面试题 > 【Java面试题】HashMap的实现原理

【Java面试题】HashMap的实现原理

2018-06-20 15:35:41 来源:互联网 手机端入口

Java基础知识有许多原理的问题,今天给大家分享Java面试题之HashMap的实现原理,希望大家可以掌握。

1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。

【Java面试题】HashMap的实现原理

当我们往Hashmap中put元素时,首先根据key的hashcode重新计算hash值,根绝hash值得到这个元素在数组中的位置(下标),如果该数组在该位置上已经存放了其他元素,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放入链尾.如果数组中该位置没有元素,就直接将该元素放到数组的该位置上.

需要注意Jdk 1.8中对HashMap的实现做了优化,当链表中的节点数据超过八个之后,该链表会转为红黑树来提高查询效率。

相关推荐:

Java面试题:HashMap和Hashtable的区别?

【Java培训教程】一线技术大牛带你学Java

【Java培训班】从入门到精通 打造Java精英人才

免责声明:本文来源于网络,由网友提供或网络搜集,仅供个人交流学习参考使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。谢谢合作!

关键词: Java面试题

相关推荐

 
 
咨询中心
优就业微信扫一扫
微信扫一扫

400-650-7353

加入官方微博