博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java重写hashCode()和equals(Object obj)方法进行对象的判断
阅读量:5020 次
发布时间:2019-06-12

本文共 2302 字,大约阅读时间需要 7 分钟。

Student类:重写hashcode()方法和equals()方法ackage com.lx.dome;import java.io.Serializable;public class Student implements Serializable{/**     *      */    private static final long serialVersionUID = 1L;private Integer stuId;private Integer stuAge;private String stuName;public Integer getStuId() {    return stuId;}public void setStuId(Integer stuId) {    this.stuId = stuId;}public Integer getStuAge() {    return stuAge;}public void setStuAge(Integer stuAge) {    this.stuAge = stuAge;}public String getStuName() {    return stuName;}public void setStuName(String stuName) {    this.stuName = stuName;}@Overridepublic String toString() {    return "Student [stuId=" + stuId + ", stuAge=" + stuAge + ", stuName=" + stuName + "]";}public Student(Integer stuId, Integer stuAge, String stuName) {    super();    this.stuId = stuId;    this.stuAge = stuAge;    this.stuName = stuName;}@Overridepublic int hashCode() {        return stuName.hashCode()+stuAge;}@Overridepublic boolean equals(Object obj) {    if(obj==null) {        return false;            }        if(this==obj) {        return true;            }    Student person=(Student)obj;//强转为Student类型    //指定名字和年龄都相同就认为是同一个对象    if(this.stuName.equals(person.getStuName())&&this.stuAge==person.getStuAge()) {                return true;    }else {        return false;    }    }}
测试类:package com.lx.dome;import java.util.ArrayList;import java.util.List;public class StudentTest {/** * 实现对象比较,如果名字和年龄都相同,就认为是同一个对象 * 在Person类重写hashCode()和equals(Object obj)方法,并且添加相对应的判断条件逻辑 * @param args */public static void main(String[] args) {    /**     * 在stu1集合中不包含姓名年龄都相同的对象,输出为false     */    List
stu1=new ArrayList<>(); stu1.add(new Student(1, 22, "matureX")); stu1.add(new Student(2, 22, "cici")); stu1.add(new Student(3, 22, "sound")); stu1.add(new Student(4, 23, "coco")); System.out.println(stu1.contains(new Student(1, 22, "mature"))); //在stu2集合中包含姓名年龄都相同的对象,输出为true List
stu2=new ArrayList<>(); stu2.add(new Student(1, 22, "mature")); stu2.add(new Student(2, 22, "cici")); stu2.add(new Student(3, 22, "sound")); stu2.add(new Student(4, 23, "coco")); System.out.println(stu2.contains(new Student(1, 22, "mature")));}}
运行结果:falsetrue

 

转载于:https://www.cnblogs.com/mature1021/p/9626608.html

你可能感兴趣的文章
ubuntu 设置计划任务
查看>>
JQuery $()后面的括号里的内容什么时候加引号,什么时候不加
查看>>
sys模块,shutil模块
查看>>
linux --> 孤儿进程与僵尸进程
查看>>
bat wmic python 获取进程的所在路径
查看>>
大雄的elk实践
查看>>
C 语言 习题 1-10
查看>>
Django--admin后台
查看>>
kotlin学习笔记2
查看>>
HR+CSS 分割线
查看>>
对命运的理解
查看>>
VS2013下搭建SDL开发环境
查看>>
关于正则的那些事儿
查看>>
MapReduce的NLineInputFormat使用
查看>>
Java思维导图
查看>>
Linux系统属性文件详解
查看>>
VS 常见快捷键(转)
查看>>
预处理
查看>>
移动web app开发框架
查看>>
学习笔记_第十天_方法_方法的三个高级参数
查看>>