zoukankan      html  css  js  c++  java
  • Java 重写equals()与hashCode()方法

    List对象的contains方法实际上也是调用的equals()方法来进行逐条对比的。

     示例代码:

    package com.imooc.collection;
    
    /**
     * 课程类
     */
    
    public class Course {
        private String id;
        private String name;
    
        public Course(){
    
        }
    
        public Course(String id, String name) {
            this.id = id;
            this.name = name;
        }
    
        public void setId(String id){
            this.id = id;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getId() {
            return id;
        }
    
        public String getName() {
            return name;
        }
    
        /**
         * 重写 Course类的 Equals方法
         * @param obj
         * @return
         */
        @Override
        public boolean equals(Object obj){
            if(this == obj) {
                return true;
            }
    
            if(obj == null) {
                return false;
            }
    
            if(!(obj instanceof Course)){
                return false;
            }
    
            Course course = (Course) obj;
            if(this.name.equals(course.name) && this.id.equals(course.id)) {
                return true;
            }
            return false;
        }
    
    }

    Set对象的contains方法跟List实现方式不一样,是先调用hashCode()方法返回hash码,如果hash码一致,再调用equals()方法。

        @Override
        public int hashCode() {
            return Objects.hash(name);
        }
  • 相关阅读:
    Git 中 .gitignore 的配置语法
    DMX512协议
    k8s 报错总结
    yum 源配置
    docker 安装 docker-compose
    docker 搭建 Harbor 仓库
    linux 远程执行命令
    远程从服务器A拷贝文件到服务器B
    docker 搭建私服仓库
    awk和xargs清除docker 容器、镜像
  • 原文地址:https://www.cnblogs.com/vincenshen/p/10159264.html
Copyright © 2011-2022 走看看