使用Set实现不重复添加用户的实现思路:创建类User在该类中定义String类型属性姓名name、性别sexint类型属性年龄age并重写该类的hashCode方法和equals方法。创建类UserSys在该类中定义HashSet类型实例属性set该属性用于添加User对象并定义添加用户信息方法addUser该方法用于将用户对象添加至set集合中。
在添加用户信息时,先判断该用户是否已经存在于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集合中,并输出“用户添加成功”提示信息,否则输出“用户已存在,无需重复添加”提示信息
原文地址: https://www.cveoy.top/t/topic/ffL9 著作权归作者所有。请勿转载和采集!