zoukankan      html  css  js  c++  java
  • java中重写equals()方法时为什么要重写hashCode()方法

    转载自:https://blog.csdn.net/qq_28051453/article/details/52701171

    一、什么是hashCode()、equals()方法?

    二、hashCode(),equals()两种方法是什么关系?

    三、为什么在重写equals方法的时候要重写hashCode的方法?

    四、怎么重写这两种方法?

     

     

     

     

     

          public class SimpleDemo {
        // 部门
        private String department;
        // 工号
        private int id;
     
        public SimpleDemo(int id, String department) {
            super();
            this.id = id;
            this.department = department;
        }
     
        public int getId() {
            return id;
        }
     
        public void setId(int id) {
            this.id = id;
        }
     
        public String getdepartment() {
            return department;
        }
     
        public void setdepartment(String department) {
            this.department = department;
        }
     
        @Override
        public int hashCode() {
            int hash = 1;
            hash = hash * 17 + id;
            hash = hash * 31 + department.hashCode();
            return hash;
        }
           @Override
        public boolean equals(Object obj) {
            if (obj == null)
                return false;
            if (obj == this)
                return true;
            if (obj instanceof SimpleDemo) {
                SimpleDemo sd = (SimpleDemo) obj;
                return sd.department.equals(department) && sd.id == id;
            }
            return false;
        }
    ————————————————
    版权声明:本文为CSDN博主「南瓜灯cc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_28051453/article/details/5270117

  • 相关阅读:
    18、排序算法-快速排序
    centos7.x 端口映射
    SpringBoot多环境分离resources和lib进行打包
    Java枚举储存的一种索引实现方式
    Maven项目pom文件设置JDK版本
    Java提取URL某个参数的值
    使用正则替换script及其内容
    Oracle设置主键自增
    Maven配置ojdbc14-10.2.0.4.0.jar
    使用maven生成可执行jar包(包含依赖)
  • 原文地址:https://www.cnblogs.com/Yi-ling/p/14511273.html
Copyright © 2011-2022 走看看