• 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]

  • 相关阅读:
    2018.10.29-dtoj-3999-游戏(game)
    2018.10.27-dtoj-3996-Lesson5!(johnny)
    2018.10.25-dtoj-2903-蛋糕(cake)
    2018.10.25-dtoj-1113-Hy拯救公主 princess
    2018.10.25-dtoj-3989-五子棋(fir)
    2018.10.25-dtoj-1588-Intelligence test(test)
    2018.10.24-dtij-2636-262144(game)
    2018.10.23-dtoi-2004:象棋Chess(Chess)
    中国PostgreSQL认证考试,证书类别、考试科目、及格分数、报名方式
    PostgreSQL技术分享公开课:备份恢复与Point-in-Time Recovery(PITR)
  • 原文地址:https://www.cnblogs.com/vincent4code/p/5324731.html
Copyright © 2020-2023  润新知