创建一个Test8类,要求如下: (1)创建一个HashSet集合,调用add()方法向集合添加2个不同的教师(Teacher)对象。 (2)使用增强for循环进行遍历HashSet当中的2个对象。
时间: 2024-03-25 16:38:12 浏览: 54
Java集合框架迭代器Iterator实现原理解析
好的,您的要求已收到,下面是代码实现:
```
import java.util.HashSet;
public class Test8 {
public static void main(String[] args) {
// 创建HashSet集合
HashSet<Teacher> teachers = new HashSet<>();
// 添加两个不同的教师对象
teachers.add(new Teacher("张三", 30));
teachers.add(new Teacher("李四", 35));
// 遍历HashSet集合中的教师对象
for (Teacher teacher : teachers) {
System.out.println(teacher);
}
}
}
class Teacher {
private String name;
private int age;
public Teacher(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
// 重写equals()和hashCode()方法,确保教师对象的唯一性
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Teacher)) return false;
Teacher teacher = (Teacher) o;
if (getAge() != teacher.getAge()) return false;
return getName() != null ? getName().equals(teacher.getName()) : teacher.getName() == null;
}
@Override
public int hashCode() {
int result = getName() != null ? getName().hashCode() : 0;
result = 31 * result + getAge();
return result;
}
// 重写toString()方法,方便输出教师对象信息
@Override
public String toString() {
return "Teacher{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
在上述代码中,我们创建了一个 `Teacher` 类来表示教师对象,其中重写了 `equals()`、`hashCode()` 和 `toString()` 方法。然后我们在 `Test8` 类中创建了一个 `HashSet` 集合,向其中添加了两个不同的教师对象,并使用增强for循环遍历了集合中的两个对象,最终输出了它们的信息。
阅读全文