【转】HashMap集合中key只能为引用数据类型,不能为基本类型
在HashMap中,为什么不能使用基本数据类型作为key?
其实和HashMap底层的存储原理有关,HashMap存储数据的特点是:无序、无索引、不能存储重复元素。
存储元素采用的是hash表存储数据,每存储一个对象的时候,都会调用其hashCode()方法,算出其hash值,如果相同,则认为是相同的数据,直接不存储,如果hash值不同,则再调用其equals方法进行比较,如果返回true,则认为是相同的对象,不存储,如果返回false,则认为是不同的对象,可以存储到HashMap集合中。
之所以key不能为基本数据类型,是因为基本数据类型不能调用其hashCode()和equals()方法进行比较,所以HashMap集合的key只能为引用数据类型,不能为基本数据类型,可以使用基本数据类型的包装类,例如Integer Double等。
当然,在HashMap中存储自定义对象的时候,需要自己再自定义的对象中重写其hashCode()方法和equals()方法,才能保证其存储不重复的元素,否则将存储多个重复的对象,因为每new一次,其就创建一个对象,内存地址是不同的。
转载自《HashMap集合中key只能为引用数据类型,不能为基本类型》
转载于:https://www.cnblogs.com/codingmengmeng/p/10474772.html
【转】HashMap集合中key只能为引用数据类型,不能为基本类型相关推荐
- HashMap集合中key只能为引用数据类型,不能为基本类型
在HashMap中,为什么不能使用基本数据类型作为key? 其实和HashMap底层的存储原理有关,HashMap存储数据的特点是:无序.无索引.不能存储重复元素. 存储元素采用的是hash表存储数据 ...
- java map移除key为空_Java实现过滤掉map集合中key或value为空的值示例
本文实例讲述了Java实现过滤掉map集合中key或value为空的值.分享给大家供大家参考,具体如下: import java.util.Collection; import java.util.H ...
- Java过滤掉map集合中key或value为空的值
import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.M ...
- Java将map置空_Java实现过滤掉map集合中key或value为空的值示例
Java实现过滤掉map集合中key或value为空的值示例 发布时间:2020-09-16 23:26:14 来源:脚本之家 阅读:147 作者:May的博客 本文实例讲述了Java实现过滤掉map ...
- java中数组的引用是什么意思_java中的数组是引用数据类型。
[判断题]合金的组元决定了合金的性能 . [单选题]下列分子中存在分子内氢键的是 [单选题]下列电子构型中,不属于基态原子电子构型的是 [判断题]面心立方晶格的纯铁较体心立方晶格的纯铁强度高 [判断题 ...
- java中的五种引用数据类型(对象类型)
注意,不是JVM中的四种引用类型:强.软.弱.虚引用. 详见我的另一篇文章<JVM中的四种引用类型> Java有 5种引用类型(对象类型):类 接口 数组 枚举 标注 引用类型:底层结构和 ...
- EL表达式, JSTL, 获取map集合中key的value
序言:今天在项目中使用了map存储list和普通对象,但是在jsp中显示的时候出来问题,后经查阅,终于解决,现在记录一下,以便以后查阅: 一:后台代码如下: package cn.gov.csrc.c ...
- 在python中、int表示的数据类型是_python--002--数据类型(int、str)
1. 整型 int int().bit_length() v = int("a", base=16) #表示以16进制转换a print(v) age= 5r= age.bit_l ...
- 【Groovy】map 集合 ( 根据 Key 获取 map 集合中对应的值 | map.Key 方式 | map.‘Key’ 方式 | map[‘Key’] 方式 | 代码示例 )
文章目录 一.根据 Key 获取 map 集合中对应的值 1.通过 map.Key 方式获取 map 集合中的值 Value 2.通过 map.'Key' 方式获取 map 集合中的值 Value 3 ...
最新文章
- 美团分布式服务治理框架OCTO之二:Mesh化
- 网络抓包工具wireshark and tcpdump 及其实现基于的libpcap
- MVC下实现LayUI分页的Demo
- ie6 offsetWidth/offsetHeight无效
- ISLR—第二章 Statistical Learning
- [LeetCode] Plus One
- VUE3.x的基本使用
- LeetCode 139. 单词拆分(动态规划)
- 软件基本功:工作目标经常变化,要及时跟进
- python攻击局域网电脑_怎么攻击对方电脑?以知对方IP,且对方在线
- 如何将CAD图纸转换成彩色jpg?
- 1_绪论 分布式机器学习
- win10 外接触摸屏触摸校准
- DNA甲基化可实现转座因子驱动的基因组扩增
- Python_Flask
- 自定义函数使用GridSearchCV参数寻优
- MATLAB函数判断绝对素数,自定义函数,找出 以内所有素数(质数)并计算它们的和,matlab...
- 考计算机专业要理科好吗,大学想念计算机系是不是该高中读理科?
- 哈尔滨理工大学---沼跃鱼(待整理)
- WinGate 6.0 build 984铪铪铪