创建一个User类,包含name和password两个成员变量。向一个HashSet对象中加入两个完全一样的User对象,然后遍历HashSet对象中的User对象,并把这些User对象的成员变量打印在控制台。
时间: 2023-12-10 22:41:31 浏览: 106
下面是一个示例代码:
```java
import java.util.HashSet;
public class User {
private String name;
private String password;
public User(String name, String password) {
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public String getPassword() {
return password;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
if (!name.equals(user.name)) return false;
return password.equals(user.password);
}
@Override
public int hashCode() {
int result = name.hashCode();
result = 31 * result + password.hashCode();
return result;
}
public static void main(String[] args) {
HashSet<User> users = new HashSet<>();
users.add(new User("Alice", "123456"));
users.add(new User("Alice", "123456"));
for (User user : users) {
System.out.println("Name: " + user.getName() + ", Password: " + user.getPassword());
}
}
}
```
在这个示例代码中,我们创建了一个User类,用于表示用户。这个类包含name和password两个成员变量,以及相应的getter方法。
在equals方法中,我们重写了Object类的equals方法,以便HashSet对象能够正确判断两个User对象是否相等。在hashCode方法中,我们根据name和password生成了一个唯一的哈希值。
在main方法中,我们创建了一个HashSet<User>对象,并向其中添加了两个完全一样的User对象。然后我们遍历这个HashSet对象,打印出其中所有User对象的成员变量。由于我们重写了equals和hashCode方法,所以这两个完全一样的User对象只会被加入HashSet中一次,遍历时也只会输出一次。
阅读全文