编程使用HashSet集合保存Person对象,具体要求如下: (1)定义一个Person类,设置name和age属性,并定义一个show()方法,用于输出属性的值; (2)定义主类,在主方法中完成以下功能:创建HashSet集合对象,在集合中添加三个Person对象,把姓名相同且年龄相同的人当做同一个人,禁止重复添加,最后遍历集合,调用Person对象的show()方法输出验证。 提示: (1)重写hashCode()方法,返回name属性的哈希码;(2)重写equals()方法,针对Person类的name和age属性进行比较,如果name和age值相同,equals方法返回true。
时间: 2024-03-19 22:44:41 浏览: 95
新建文本文档复习.txt
好的,我还是来给你讲解一下。
首先,我们需要创建一个Person类,设置name和age属性,并定义一个show()方法,用于输出属性的值。代码如下:
```
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void show() {
System.out.println("name: " + name + ", age: " + age);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Person) {
Person p = (Person) obj;
return name.equals(p.name) && age == p.age;
}
return false;
}
}
```
在Person类中,我们重写了hashCode()和equals()方法。hashCode()方法返回name和age属性的哈希码的组合,而equals()方法则针对Person类的name和age属性进行比较,如果name和age值相同,equals方法返回true。
接下来,我们需要在主方法中创建HashSet集合对象,然后向集合中添加三个Person对象。代码如下:
```
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
HashSet<Person> set = new HashSet<>();
set.add(new Person("Tom", 18));
set.add(new Person("Jerry", 19));
set.add(new Person("Tom", 18)); // 添加重复元素,不会被添加到集合中
for (Person p : set) {
p.show();
}
}
}
```
在主方法中,我们创建了一个HashSet集合对象,然后向集合中添加了三个Person对象。由于集合中不允许有重复元素,因此第三个Person对象并不会被添加到集合中。最后,我们遍历集合,调用Person对象的show()方法输出验证。
运行程序,输出结果如下:
```
name: Tom, age: 18
name: Jerry, age: 19
```
可以看到,输出结果符合预期,说明我们的程序实现成功。
阅读全文