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是可以为null, 只能存储一个null, 因为计算key的hash值的时候,如果key为null, 则其hash值为0
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 ...
- Spring-Bean依赖注入(引用数据类型和集合数据类型)
为什么使用spring依赖注入详见–>依赖注入分析 1.创建实体类User类 package com.hao.domain;public class User {private String n ...
最新文章
- TCP协议经典数据--TCP/IP高效编程 : 改善网络程序的44个技巧
- Log4j详细介绍(七)----日志格式化器Layout
- 细学PHP 09 MySql
- leetcode950. 按递增顺序显示卡牌
- apache mod_xsendfile提高php文件下载速度的方法
- 2021年商业地产趋势洞察白皮书
- sql语句创建唯一索引
- java jaxb 格式化_XStream、JAXB 日期(Date)、数字(Number)格式化输出xml
- Apache Tika 内容抽取工具集合
- 【WP开发】JSON数据的读与写
- 同花顺 sendmessage python_进程通信-SendMessage使用方法
- 2019年最新全国省市区街道共46462条数据(统计局MySQL数据库)
- 51单片机复习:红外通信
- linux怎么取消光盘,怎样取消ubuntu官方光盘
- 由《爆裂鼓手》引发的产品思考
- 玩转Linux与运维岗(21)
- oppo手机安装应用失败,提示版本不兼容
- 创新创业大赛计算机,计算机学院第六届创新创业大赛圆满结束
- Linux公社 学习连接
- 模块“Upgrade”启动失败。 未能启动虚拟机。虚拟机VMware不支持的硬件版本【终极解决方案】
热门文章
- 神经网络是算法还是模型,神经网络 图像相似度
- 一夜之间ChatGPT火遍全球,程序员的饭碗保不住了吗
- IOT演进,数据觉醒
- 坯子库曲面推拉教程_坯子助手下载_坯子助手最新版下载-下载之家
- GitHub 搜索使用姿势
- oracle aix 11.2.0.3,Oracle 11.2.0.3 Database for AIX bug导致ORA-04030的报错
- 窄带物联网(NB-IoT)科技的关键技术是什么?
- e代驾——打造代驾服务标准化平台
- jsencrypt-RSA加密
- 我要让一些好习惯替换掉坏习惯