(1)只要覆写 equals,就必须覆写 hashCode。

说明:因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须覆写这两种方法。

(2)如果自定义对象作为 Map 的键,那么必须覆写 hashCode 和 equals。

说明:String 因为覆写了 hashCode 和 equals 方法,所以可以愉快地将 String 对象作为 key 来使用。

public class Person {private String name;private int age;private boolean gender;public Person() {super();}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public boolean isGender() {return gender;}public void setGender(boolean gender) {this.gender = gender;}@Overridepublic boolean equals(Object another) {if (this == another) {return true;}if (another instanceof Person) {Person anotherPerson = (Person) another;if (this.getName().equals(anotherPerson.getName()) && this.getAge() == anotherPerson.getAge()) {return true;} else {return false;}}return false;}@Overridepublic int hashCode() {int hash = 17;hash = hash * 31 + getName().hashCode();hash = hash * 31 + getAge();return hash;}
}

【Java开发规范】hashCode 和 equals 的处理规则相关推荐

  1. JAVA 开发规范标准(集合)

    JAVA 开发规范 一.编程规约 (一)命名规约 1. [强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符 号结束. 反例:_name / __name / $Object / ...

  2. Java开发规范整理

    Java开发规范整理 (参考<Java开发手册嵩山版>) 文章目录 Java开发规范整理 一.编程规约 (一)命名 (二)常量定义 (三)代码格式 (四)OOP面向对象程序设计 (五)时间 ...

  3. Java开发规范(阿里+腾讯)

    如何适应企业的标准化开发? 文章目录 前言 腾讯开发规范整理(精简) 阿里开发规范整理(精简) 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越 ...

  4. JAVA开发规范常用的技巧总结(共12个安全牛课堂)

    分享下自己在工作中用到的Java开发规则和功能实现及原理,共12个. 1.类的命名使用驼峰式命名的规范. 例如:UserService,但是以下情景例外:DO / BO / PO / DTO / VO ...

  5. Java | 开发规范 | 唯品会开发手册(二) | 集合篇

    Rule 1. [推荐]底层数据结构是数组的集合,指定集合初始大小 推荐底层数据结构为数组的集合包括 ArrayList,HashMap,HashSet,ArrayDequeue等. 数组有大小限制, ...

  6. java object转list_这份Java开发规范,让你100%受益!

    今天跟大家分享下Java开发规范的知识. 基于阿里巴巴JAVA开发规范整理: https://github.com/alibaba/p3c 1 命名风格 [强制]类名使用 UpperCamelCase ...

  7. 谈谈Google与微信H5牛牛的Java开发规范

    多年前,Google发布微信H5牛牛搭建平台(h5.fanshubbs.com)来定义Java编码时应遵循的微信牛牛Q_1687054422规范:今年年初阿里则发布阿里巴巴Java 开发手册,并随后迭 ...

  8. 谈谈阿里与谷歌的Java开发规范

    无规矩不成方圆,编码规范就如同协议,有了Http.TCP等各种协议,计算机之间才能有效地通信,同样的,有了一致的编码规范,程序员之间才能有效地合作.道理大家都懂,可现实中的我们,经常一边吐槽别人的代码 ...

  9. 谈谈ali与Google的Java开发规范

    无规矩不成方圆,编码规范就如同协议,有了Http.TCP等各种协议,计算机之间才能有效地通信,同样的,有了一致的编码规范,程序员之间才能有效地合作.道理大家都懂,可现实中的我们,经常一边吐槽别人的代码 ...

  10. hualinux java 1.17:java开发规范(新手必看)

    有不少java初学者都不知道java开发规范的,所以网上找了一个国内电商算是权威的java开发手册 国内最大的电商就是淘宝了,我们向老大学习. 根据<阿里巴巴Java开发手册>中" ...

最新文章

  1. CloudHub概述
  2. 统计整数n的二进制表示中1的个数
  3. vue 后台数据列表获取图片_vue使用ajax获取后台数据进行显示的示例
  4. 博弈论(一):Nim游戏
  5. XML XPATH simpleXML
  6. Android之Surface/Window/View/SurfaceView区别
  7. LINUX搭建EtherPad环境
  8. element-UI快速上手例子运行失败
  9. dqo变换_一种基于dqo变换改进的电流检测新方法
  10. The Dominant Color (20)
  11. echarts pie 饼图 border宽度
  12. Jquery之瀑布流
  13. 疑为灵异现象不可思议的透明液晶揭秘
  14. 考公、事业编、央企国企私企外企、校招社招都在这些地方找到信息(精华)
  15. PCA主成分分析遥感影像融合
  16. DataGridView 控件中自动生成列
  17. 华为手机计算机怎么语音算术,华为自带的语音识别功能太实用了!这样操作,3秒语音变文字...
  18. mmap MAP_PRIVATE MAP_SHARED
  19. 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 基于BERT模型微调实现句子分类
  20. 浅析copy和deepcopy

热门文章

  1. SpringMvc-@ModelAttribute注解
  2. linux 清空文件夹_弱电工程师-了解这些Linux命令,菜鸟也能变高手!
  3. cass插件_第009期分享:Cass插件合集
  4. 复用管脚_如何实现UART的分时复用
  5. js 转php json string,JS里字符串转json方法总结
  6. 网路防火墙iptables
  7. 《鸟哥的Linux私房菜 基础学习篇(第四版)》 第23章 XWindows设定介绍 笔记
  8. git将本地仓库强制替换掉远程仓库
  9. neo4j-访问提示No authorization header supplied.
  10. 牛客网模拟笔试——膨胀的牛牛(JavaScript)