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]

  • 相关阅读:
    站立会议08
    站立会议07
    站立会议06
    站立会议05
    SOA架构设计的案例分析
    java实现根据高德地图API接口进行地址位置解析,将地址转化为经纬度
    java实现根据起点终点和日期查询去哪儿网的火车车次和火车站点信息
    Cocos2d切换场景出现的问题-error C2653: “***”不是类或命名空间名称
    云时代架构之点融支付系统架构的演进
    云时代架构之百度万人协同规模下的代码管理架构演进
  • 原文地址:https://www.cnblogs.com/vincent4code/p/5324731.html
Copyright © 2011-2022 走看看