首页 / 知识
HashMap底层实现原理详解
2023-04-11 16:24:00

一、快速入门
示例:有一定基础的小伙伴们可以选择性的跳过该步骤
HashMap是Java程序员使用频率最高的用于映射键值对(key和value)处理的数据类型。随着JDK版本的跟新,JDK1.8对HashMap底层的实现进行了优化,列入引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的数据结构实现和功能原理。
Java为数据结构中的映射定义了一个接口java.uti.Map,此接口主要有四个常用的实现类,分别是HashMap,LinkedHashMap,Hashtable,TreeMap,IdentityHashMap。本篇文章主要讲解HashMap以及底层实现原理。
1.HashMap的常用方法
// Hashmap存值:----------------------------------》 .put("key","value"); ----------》无返回值。
//
// Hashmap取值:----------------------------------》 .get("key");-------------------》 返回Value的类型。
//
// Hashmap判断map是否为空:-----------------------》 .isEmpty(); -------------------》返回boolean类型。
//
// Hashmap判断map中是否存在这个key:--------------》。containsKey("key");------------》返回boolean类型。
//
// Hashmap判断map中是否含有value:----------------》。containsValue("value");-------》返回boolean类型。
//
// Hashmap删除这个key值下的value:----------------》。remove("key");-----------------》返回Value的类型。
//
// Hashmap显示所有的value值:---------------------》。values(); --------------------》返回Value的类型。
//
// Hashmap显示map里的值得数量:-------------------》。size(); ----------------------》返回int类型
//
// HashMap显示当前已存的key:---------------------》 .keySet();-------------------》返回Key的类型数组。
//
// Hashmap显示所有的key和value:-----------------》。entrySet());------------------》返回Key=Value类型数组。
//
// Hashmap添加另一个同一类型的map:--------------》。putAll(map); -----------------》(参数为另一个同一类型的map)无返回值。
//
// Hashmap删除这个key和value:------------------》。remove("key", "value");-------》(如果该key值下面对应的是该value值则删除)返回boolean类型。
//
// Hashmap替换这个key对应的value值(JDK8新增):---》。replace("key","value");-------》返回被替换掉的Value值的类型。
//
// 克隆Hashmap:-------------------------------》。clone(); ---------------------》返回object类型。
//
// 清空Hashmap:-------------------------------》。clear(); ---------------------》无返回值。
2.HashMap的几个重要知识点
HashMap是无序且不安全的数据结构。
HashMap 是以key–value对的形式存储的,key值是唯一的(可以为null),一个key只能对应着一个value,但是value是可以重复的。
HashMap 如果再次添加相同的key值,它会覆盖key值所对应的内容,这也是与HashSet不同的一点,Set通过add添加相同的对象,不会再添加到Set中去。
HashMap 提供了get方法,通过key值取对应的value值,但是HashSet只能通过迭代器Iterator来遍历数据,找对象。
|
最新内容
相关内容
python如何调用另一个文件夹中的内
python如何调用另一个文件夹中的内容?,系统,培训,文件,模块,内容,路径,函数,所在,前缀,语句,python中调用另外一个文件夹中的内容:1、同一文件python中怎么对一个数进行因式分解
python中怎么对一个数进行因式分解?,代码,培训,因式分解,因数,个数,最小,整数,数组,假定,分解,1、Python因式分解代码:importtime#对一个数进python怎么在数组添加一行?
python怎么在数组添加一行?,培训,下标,维度,数组,列表,函数,形状,元素,代表,原型,python中在数组添加一行的方法:python中可以使用stack()函数python如何实现换行?
python如何实现换行?,培训,结果,字符,以上,方法,更多,内容,python实现换行的方法:1、使用换行符“\n”实现换行#-*-coding:utf-8-*-A="来python函数里面形参和实参一样吗?
python函数里面形参和实参一样吗?,培训,函数,参数,里面,变量,实际,形式,全称,示例,后面,python函数里面形参和实参不一样。形参全称是形式参python判断xml是否存在某一节点?
python判断xml是否存在某一节点?,数据,培训,节点,方法,结果,表达式,长度,以上,更多,内容,python中判断xml是否存在某一节点的方法:使用selectNpython是一种编程语言吗?
python是一种编程语言吗?,放宽,适当,平台,培训,语言,指令,计算机,机器,程序,解释性,python是一种编程语言,Python是一种跨平台的计算机程序设计python如何获取字符串最后一个字符
python如何获取字符串最后一个字符?,培训,字符串,方括号,字符,方法,引号,变量,数据类型,结尾,分配,python获取字符串最后一个字符的方法:字符python中怎么将元组、字典转化为列
python中怎么将元组、字典转化为列表,培训,列表,字典,方法,元素,示例,中将,语法,以上,参数,python中将元组、字典转化为列表的方法:python中可Python如何实现excel筛选
Python如何实现excel筛选,数据,培训,表示,缺失,表格,示例,模块,手工,以上,标签,python实现筛选Excel数据可以使用pandas库来实现,具体的使用示python如何实现手动输入文字
python如何实现手动输入文字,培训,表达式,字符串,函数,整数,示例,语法,以上,参数,文字,python中可以使用input()函数接收用户输入的文字。函python中如何实现加密
python中如何实现加密,中国,数据,培训,信息,模块,你好,参数,字符串,长度,前后,1、Python中使用Base64加密:Python内置的base64模块可以直接进