在添加用户信息时,先判断该用户是否已经存在于set集合中,若不存在则将该用户对象添加至set集合中,否则不进行添加操作。具体实现如下:

import java.util.HashSet;
import java.util.Set;

public class User {
    private String name;
    private String sex;
    private int age;

    public User(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + age;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        result = prime * result + ((sex == null) ? 0 : sex.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 (age != other.age)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        if (sex == null) {
            if (other.sex != null)
                return false;
        } else if (!sex.equals(other.sex))
            return false;
        return true;
    }
}

public class UserSys {
    private Set<User> set = new HashSet<>();

    public void addUser(User user) {
        if (!set.contains(user)) {
            set.add(user);
            System.out.println("用户添加成功");
        } else {
            System.out.println("用户已存在,无需重复添加");
        }
    }
}

以上代码中,User类重写了hashCode()方法和equals()方法,用于判断用户对象是否相等。UserSys类中定义了添加用户信息方法addUser(),该方法先判断set集合中是否存在该用户对象,若不存在则将该用户对象添加至set集合中,并输出“用户添加成功”提示信息,否则输出“用户已存在,无需重复添加”提示信息

使用Set实现不重复添加用户的实现思路:创建类User在该类中定义String类型属性姓名name、性别sexint类型属性年龄age并重写该类的hashCode方法和equals方法。创建类UserSys在该类中定义HashSet类型实例属性set该属性用于添加User对象并定义添加用户信息方法addUser该方法用于将用户对象添加至set集合中。

原文地址: https://www.cveoy.top/t/topic/ffL9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录