博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java重写equals方法和hashCode方法
阅读量:5782 次
发布时间:2019-06-18

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

hot3.png

package com.ddy;public class User {    private Integer id;    private String name;    private String address;    private String phone;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name == null ? null : name.trim();    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address == null ? null : address.trim();    }    public String getPhone() {        return phone;    }    public void setPhone(String phone) {        this.phone = phone == null ? null : phone.trim();    }    @Override    public int hashCode() {        final int prime = 31;        int result = 1;        result = prime * result + ((id == null) ? 0 : id.hashCode());        return result;    }    @Override    public boolean equals(Object obj) {        if (this == obj)            return true;        if (obj == null)            return false;        if (getClass() != obj.getClass())            return false;        User other = (User) obj;        if (id == null) {            if (other.id != null)                return false;        } else if (!id.equals(other.id))            return false;        return true;    }    public User(Integer id) {        super();        this.id = id;    }    }

Person根据id重写了equals和hashCode方法;这样HashSet添加people的时候会将id重复的people对象视为同一个people对象。

package com.ddy;import java.util.HashSet;import java.util.Set;public class Test {    public static void main(String[] args) {        User user1 = new User(1);        User user2 = new User(1);        Set
users = new HashSet<>(); users.add(user2); users.add(user1); System.out.println(users); }}

 

转载于:https://my.oschina.net/duanvincent/blog/777852

你可能感兴趣的文章
Java从零开始学四(数据类型)
查看>>
Android 从硬件到应用:一步一步向上爬 4 -- 使用 JNI 方法调硬件驱动
查看>>
windows 如何查看端口占用情况?
查看>>
根据ImageView的大小来压缩Bitmap,避免OOM
查看>>
TEST
查看>>
loadrunner 的Administration Page里面设置
查看>>
程序员喜欢怎样的职位描述?(转)
查看>>
威胁快报|ProtonMiner挖矿蠕虫扩大攻击面,加速传播
查看>>
<<深入PHP面向对象、模式与实践>>读书笔记:面向对象设计和过程式编程
查看>>
架构的“一小步”,业务的一大步
查看>>
聊聊flink JobManager的heap大小设置
查看>>
PAT A1116
查看>>
App上架/更新怕被拒? iOS过审“避雷秘籍”请查收
查看>>
CentOS 7 防火墙操作
查看>>
关于 top 工具的 6 个替代方案
查看>>
程序员最讨厌的9句话,你可有补充?
查看>>
PAT A1037
查看>>
DevOps自动化工具集合
查看>>
淘宝放大镜的两种实现方法JS
查看>>
浅谈RPC
查看>>