首页 > 编程语言 >java中的equals工具包和hashcode

java中的equals工具包和hashcode

时间:2022-11-02 23:13:56浏览次数:45  
标签:java name int age equals hashcode Animal return public

package com.te.jdkapi;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

import java.util.Objects;

/*
学习equals的方法
 */
public class Study_Equels {
    public static void main(String[] args) {
        Animal a1 = new Animal();
        Animal a2 = new Animal();
        System.out.println(a1==a2);
    }

}

class Animal {
    private String name;
    private int age;

    @Override
    public boolean equals(Object o) {
        if (o instanceof Animal){ // 返回True,当前比较两个对象类型相同
            // 比较两个对象的属性值是否相同
            Animal st = (Animal) o;  // 将传递过来的Object类向下强转为Animal类
            if (this.name == st.name && this.age == st.age){
                return true;
            }
        }
        return false;
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    public Animal() {
    }
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
    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;
    }
}

通常java自带的equals方法不满足我们的需要,需要重写。我们不需要通过hashcode来判断两个类是否相等

标签:java,name,int,age,equals,hashcode,Animal,return,public
From: https://www.cnblogs.com/ch2020/p/16852881.html

相关文章

  • JAVA-猜数字游戏功能实现事务机制
    packagecom.itheima;importjavax.swing.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.Random;publicclassCAI......
  • 2022 JAVA-static this 关键字
         ......
  • Java IO流
    创建文件的三个方法方法一 方法二 方法三    查询文件删除文件 删除目录 创建文件 scanPrintTest scanTest ......
  • JAVAWeb - JSP标签
    一:EL 表达式获取数据执行运算获取web开发的常用的对象二:JSP标签<jsp:forwardpage="/jsptag2.jsp"><jsp:paramname="name"value="maming"></jsp:param>......
  • 【Java】开始学习Spring Boot了,你不来瞅一眼?
    (开始学习SpringBoot了,你不来瞅一眼)SpringBoot是什么?做一名Java开发程序员必须要知道的开发利器——SpringBoot。在JavaEE领域,SpringBoot在传统Spring框架的基......
  • javaSE基础-注解与枚举类
    注解与枚举类注解1、jdk5.0新增的功能2、Annotation就是代码的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应处理,通过使用注解程序员在可以不改变原有......
  • JAVA狂神数组
    一,数组的声明创建 具体定义的方法如下:1,先声明,int(不一定是int,可以换为需要创建的类型,如double等)一个数组,并给它命名。2,在把声明的数组通过new创建出来。3,再给创建的......
  • Java 中的 Lambda 表达式不能访问局部变量?
    问题现象从Java8开始新增的Lambda表达式,可以使代码变的更加简洁紧凑,使用中还会碰到一个问题:Variableusedinlambdaexpressionshouldbefinaloreffectivelyf......
  • JAVA的HALF_DOWN和HALF_UP的区别?
    Java代码:publicclassBigDecimalDemo{publicstaticvoidmain(String[]args){BigDecimalbd2=BigDecimal.valueOf(11);......
  • JavaWeb三大组件之Servlet学习
    JavaWeb三大组件之Servlet学习平时直接用springmvc较多,都没怎么接触底层的Servlet,导致对一些基本的知识点了解都不够,所以今天专门的抽出时间来学习一下带着问题出发,看下可以......