JAVA中User类创建两个对象内容判断是否相等
时间: 2024-06-06 19:08:57 浏览: 82
在Java中,如果两个对象使用equals方法比较返回true,则认为这两个对象是相等的。User类如果没有重写equals方法,则比较的是两个对象在内存中的地址是否相等。所以,如果创建两个User对象,即使它们的属性值都相同,只要它们在内存中的地址不同,equals方法会返回false。如果想要比较两个User对象的属性值是否相等,需要重写equals方法。
相关问题
java中,如何判断List<User>中的是否包含User,User类有两个属性:userName,userPassword,给一个代码
示例:
可以通过调用List的contains方法来判断List中是否包含某个对象。针对User对象,可以自己实现一个equals方法来比较对象中的属性是否相同。
示例代码如下:
```
public class User {
private String userName;
private String userPassword;
public User(String name, String password) {
userName = name;
userPassword = password;
}
// 重写equals方法,使其比较两个对象中的属性是否相同
@Override
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof User)) {
return false;
}
User u = (User) obj;
return this.userName.equals(u.userName) && this.userPassword.equals(u.userPassword);
}
}
// 在List中查找是否包含某个User对象
List<User> users = new ArrayList<>();
users.add(new User("Alice", "123"));
users.add(new User("Bob", "456"));
User targetUser = new User("Alice", "123");
if (users.contains(targetUser)) {
System.out.println("List中包含目标User对象");
} else {
System.out.println("List中不包含目标User对象");
}
```
创建一个User类, 包含name和password两个成员变量。向一个HashSet对象中加入 两个完全一样的User对象, 然后遍历HashSet对象中的User对象, 并把这些User对象的成员 变量打印在控制台。
下面是一个示例代码:
```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;
}
public static void main(String[] args) {
HashSet<User> users = new HashSet<>();
User user1 = new User("Alice", "12345");
User user2 = new User("Alice", "12345");
users.add(user1);
users.add(user2);
System.out.println("HashSet size: " + users.size());
for (User user : users) {
System.out.println("User name: " + user.getName() + ", password: " + user.getPassword());
}
}
}
```
输出结果为:
```
HashSet size: 1
User name: Alice, password: 12345
```
可以看到,尽管向HashSet中加入了两个完全一样的User对象,但是实际上HashSet中只有一个对象被加入了,因为HashSet会根据对象的hashCode和equals方法来判断两个对象是否相等,如果相等,则只会保留一个对象。
阅读全文