Java 使用 Set 实现不重复添加用户:代码示例与解析
本文将介绍如何使用 Java 中的 Set 集合来实现不重复添加用户信息的功能。
首先,我们创建一个名为 User 的类,该类包含用户姓名(name)、性别(sex)和年龄(age)等属性。为了确保 Set 集合能够正确判断用户对象是否重复,我们需要重写 User 类的 hashCode() 和 equals() 方法。
接着,我们创建一个名为 UserSys 的类,其中定义了一个名为 set 的 HashSet 实例属性,用于存储 User 对象。在 UserSys 类中,我们定义了一个 addUser() 方法,该方法用于添加用户信息。
在添加用户信息时,addUser() 方法会先判断该用户是否已经存在于 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 集合,我们可以轻松地实现不重复添加用户信息的功能。这在实际开发中非常有用,例如,我们可以使用 Set 来存储用户列表,并确保每个用户只出现一次。
希望本文能够帮助您理解使用 Set 实现不重复添加用户的原理和方法。如果您有任何疑问,请随时提出。
原文地址: https://www.cveoy.top/t/topic/n7R1 著作权归作者所有。请勿转载和采集!