String 的hashCode()方法有什么作用和意义

seward 2002-11-09 12:43:01
什么场合可以使用
...全文
3804 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyax 2002-11-12
  • 打赏
  • 举报
回复
Hashcode()使用在HashTable时产生Hash code(可以参考数据结构的散列表),而equal()则用来比较两个object是否相等。这两个方法都可以由用户重写。(Java中自带的equal()是比较内存地址的,在大多数情况下不符合用户的需求)
String的HashCode()是在String被用作Key时(插入HashTable)产生Hash code,在String的equal()中也用到了HashCode()。这两者的作用是不一样的,只是在String的实现中恰好可以用来比较。(这也说明Java的String.HashCode()写得好,可以产生独一无二的Hash code!)
一句话:在比较object时使用equal()
在需要object作为key(使用HashTable)时使用Hashcode()
以上是我的理解,如果有什么不对的地方,请大家指导我
谢谢
smallfox 2002-11-12
  • 打赏
  • 举报
回复
最重要的有三条:(用英文写是因为它们给我印象太深了)

HashCode() is explicitly used in methods where hash functions are used, like hashTable() etc.

One should always override hashCode() when overriding equals(). Unexpected behaviour will occur if you don't do so.

HashCode() should have the same value whenever equals() returns true.

andytu 2002-11-11
  • 打赏
  • 举报
回复
equals()跟hashcode()都可以用来比较对象,前者是一个常用的方法,后者可以通过不同的对象有不同的散列码来比较两个对象
qljsd 2002-11-11
  • 打赏
  • 举报
回复
关注
hotenM 2002-11-10
  • 打赏
  • 举报
回复
不懂,总之我昨天看一个ejb的例子上面是这么说的
用hashcode来比较比用equals好
hyhong_h 2002-11-10
  • 打赏
  • 举报
回复
错!比较对象是否相同应该用equals方法。hashcode方法在把对象放到一个对象容器时大派用常,一个好的hashcode算法和坏的算法,在把对象放入容器和从容器取出时,效率相差极大!
hotenM 2002-11-09
  • 打赏
  • 举报
回复
这个方法继承于object
用户比较对象是否相同
同样的对象有同样的hashcode
内容概要:本文详细介绍了利用Simulink进行变压器开路试验的电路连接配置与仿真实现方法,重点在于通过仿真手段还原实际电力系统中变压器在空载条件下的电气特性,从而深入理解其工作原理与性能表现。文章作为电力系统仿真系列研究的一部分,系统阐述了从电路模型搭建、参数设定、仿真运行到结果分析的完整流程,突出展示了MATLAB/Simulink在电力设备建模与教学科研中的强大功能与应用价值。; 适合人群:具备电力系统基础知识,熟悉MATLAB/Simulink仿真环境,从事电气工程、自动化及相关领域的研发人员,以及高年级本科生和研究生。; 使用场景及目标:①掌握变压器开路试验的基本原理与Simulink仿真建模的具体步骤;②通过仿真实验深入理解空载电流、铁芯损耗及励磁特性等关键参数的物理意义;③为后续开展变压器短路试验、暂态过程分析以及其他电力设备的仿真研究奠定理论与实践基础。; 阅读建议:建议结合Simulink软件动手实践,逐步构建并调试电路模型,重点关注各元件参数的设置方法与测量模块的应用技巧,同时推荐参考文中提及的其他相关仿真案例进行拓展学习,以全面提升对电力系统仿真实践的整体认知与操作能力。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧