在控制台输入用户信息,用户信息包括姓名、性别和年龄,将用户信息保存至User对象中。 将User对象保存至HashSet集合中。 规定如果两个User对象的姓名、性别和年龄相同,即为同一个User对象。
时间: 2024-01-22 17:20:13 浏览: 64
好的,可以使用如下代码实现:
```java
import java.util.*;
class User {
private String name;
private String gender;
private int age;
public User(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof User)) {
return false;
}
User other = (User) obj;
return name.equals(other.name) && gender.equals(other.gender) && age == other.age;
}
@Override
public int hashCode() {
return Objects.hash(name, gender, age);
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入姓名:");
String name = scanner.next();
System.out.print("请输入性别:");
String gender = scanner.next();
System.out.print("请输入年龄:");
int age = scanner.nextInt();
User user = new User(name, gender, age);
Set<User> userSet = new HashSet<>();
userSet.add(user);
System.out.println("用户信息已保存:" + userSet);
}
}
```
运行程序后,在控制台输入用户信息,例如:
```
请输入姓名:张三
请输入性别:男
请输入年龄:20
```
然后程序会将User对象保存至HashSet集合中,并输出集合中的元素,例如:
```
用户信息已保存:[User@4dc63996]
```
可以看到,输出的是User对象的默认toString()方法的返回值,需要在User类中重写toString()方法才能输出正确的用户信息。
阅读全文