首页 > 其他分享 >hashCode介绍

hashCode介绍

时间:2023-01-17 10:36:09浏览次数:35  
标签:相同 hashSet 对象 equals 介绍 hashCode 哈希

hashCode()方法的作用是获取哈希码,也称为散列码,实际上是一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。散列表存储的是键值对(key-value),它的特点是:能根据“键”快速的检索出对应的“值”。这其中就利用到了散列码。(可以快速找到所需要的对象)

  • 两个对象相等,则hashCode一定相同,调用equals也返回true
  • 两个对象的hashCode相同,但不一定相等,需要再调用equals进行比较
  • hashCode()的默认行为是对堆上的对象产生独特值。如果没有重写hashCode(),则该class中的两个对象的hashCode无论如何都不会相等(即使两个对象指向相同的值)

为什么要有hahsCode
以【hashSet如何检索重复来说明为什么要有hashCode】
将对象加入hashSet时,会先计算出该对象的hashCode值,然后根据该值来判断对象加入的位置,看该位置是否有值,如果没有直接将对象加入;如果有值,就会调用对象的equals方法检查两个对象是否真的相同,如果相同hashSet就不会让其加入操作成功,返回false;如果不同就会重新散列到其它位置。这样就大大减少了equals的次数,相应就大大提高的执行速度。

标签:相同,hashSet,对象,equals,介绍,hashCode,哈希
From: https://www.cnblogs.com/ccx-lly/p/17057055.html

相关文章

  • 21.Selenium【EC模块】expected_conditions模块介绍
    一、前言expected_conditions是selenium的一个模块(简称EC),其中包含一系列可用于判断的条件。二、学习目标1.了解EC判定方法三、知识点1.【判定方法】判定方法#1.判......
  • 【BERT-多标签文本分类实战】之三——多标签文本分类的方向与常用数据集介绍
    【注】本篇将首先介绍多标签文本分类中几个小方向,然后介绍这几个小方向对应的常用数据集。最后介绍如何自己寻找和下载数据集。[1]多标签文本分类的若干小方向  目前学......
  • SAP ABAP 一个有用的程序正确性辅助工具,Checkpoint group 的使用方法介绍
    本教程前一篇文章介绍的内容:74.学会使用SAPABAPApplicationLog在代码里添加应用日志记录功能有读者向我提问:一个ABAP程序植入了应用日志的记录功能之后,有没有......
  • AXI 协议翻译介绍
    一、介绍Introduction本章描述了axis协议的体系结构和协议定义的基本事务。它包含以下部分:•第1-2页关于AXI协议•第1-3页是架构•第1-7页是基本事务•第1-11页的附加功......
  • 【Javaweb】动态web工程目录介绍
    src存放自己编写的Java源代码web专门用来存放web工程的资源文件(html页面、css文件、js文件等等)WEB-INF是一个受服务器保护的目录,浏览器无法直接访问此目录的内容web.......
  • 【Javaweb】tomcat目录介绍
    bin专门用来存放tomcat服务器的可执行程序conf专门用来存放tomcat服务器的配置文件lib专门用来存放tomcat服务器的jar包logs专门用来存放tomcat服务器运行时输出的......
  • 五子棋html游戏代码与算法介绍
    五子棋html游戏代码与算法介绍运行图片目录路径五子棋.html五子棋算法进行下一个游戏的开发!注意事项我会把html文件、css文件提供下载地址,文件夹路径也展示给大家。但是图片......
  • 一、二(介绍ansible、部署ansible)
    一、介绍ansible            二、部署ansible                vim/etc/ansible/ansible.cfg  ......
  • 【广州华锐互动】电力虚拟仿真成品实训系统介绍
    传统的现代电气控制系统和自动线装调的教学设备,器材体积过大,调试操作复杂,还有一定的危险性,许多实验因时间和场地等因素降低了学生的学习效果。广州华锐互动研发的电力虚拟......
  • FreeMaker入门介绍
    一、FreeMaker介绍FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT、电子邮件、配置文件、源代码等)的工具,它不是面向最终用户的,而是一款程序员使用......