Java_HashMap的工作原理(Jdk1.8)

本文详细解析HashMap的工作原理,包括基本特性、存储方式、put/get方法实现、hash算法以及resize机制。HashMap使用数组+链表+红黑树的数据结构,保证高效查找。JDK1.8中,当链表长度超过8,会转换为红黑树,以解决链表过长导致的性能问题。此外,文中还讨论了HashMap的扩容策略和非线程安全性,提出在多线程环境下使用HashMap的注意事项。
摘要由CSDN通过智能技术生成

本文主要是从以下几个方面对HashMap进行分析:

一:什么是HashMap以及HashMap的基本特性有哪些?

二:HashMap的基本工作原理是什么?

三:关于put(),get()方法在源码层面是怎么实现的?(对put的源码做重点分析)

四:HashMap中的hash算法是如何实现的?

五:HashMap使如何进行resize的?

六:关于HashMap还可以深入了解的一些问题是什么?




一:HashMap简析以及HashMap的基本特性

基于哈希表的Map 接口的实现。此实现提供所有可选的映射操作,并允许使用null 值和null 键。(除了非同步和允许使用 null 之外,HashMap 类与Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

这里需要注意的几点就是,基于Map接口,映射操作,允许null键值,非同步,不保证映射的顺序,不保证顺序的恒久不变。

经常我们一提到HashMap就会想到的词就是键值对,那个什么是键值对?看下面的一段代码:

HashMap<String,String> map1=new HashMap<String,String>();
	  map1.put("语文","王老师");
	  map1.put("数学","李老师");
	  map1.put("英语","张老师");
	  map1.put("化学","刘老师");
	  map1.put("生物","孙老师");
	  map1.put("物理","周老师");
	  map1.put("政治","吴老师");
	  map1.put("地理","赵老师");
      for(Entry<String,String> entry:map1.entrySet()){
		  System.out.println(entry.getKey()+"----"+entry.getValue());
	  }

这里用到了put方法,将"语文"和"王老师"构成了一组键值对,"语文"是键,"王老师"是值,就好像是这种关系---"语文"->"王老师",这样将他

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值