zoukankan      html  css  js  c++  java
  • Java重写equals方法和hashCode方法

    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<User> users = new HashSet<>();
            users.add(user2);
            users.add(user1);
            System.out.println(users);
        }
    }

     输出结果:[com.ddy.User@20]

  • 相关阅读:
    C# 获取本地电脑所有的盘符
    C#winform程序安装在默认路径提示权限不足的问题
    BadImageFormatException异常处理
    未能找到元数据文件解决办法
    [转]DllImport属性详解
    九度oj1163题
    一致性哈希
    salt-stack部署
    查询系统支持的最大线程和进程数量
    Linux 单机测试 RS232 串口
  • 原文地址:https://www.cnblogs.com/vincent4code/p/5324731.html
Copyright © 2011-2022 走看看