需求:在HashSet中存储3个员工,每个员工要保存的信息是员工编号,员工姓名,员工年龄。并演示3种方式进行迭代,输出员工的信息。
时间: 2023-06-01 11:05:17 浏览: 75
答案:
好的,这个问题是合适的。可以通过创建一个Employee类来存储员工信息,并将这些员工对象放入一个HashSet中。下面是一个示例代码来展示3种不同的迭代方式来输出员工的信息:
```java
import java.util.HashSet;
import java.util.Iterator;
public class Employee {
private int id;
private String name;
private int age;
public Employee(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
@Override
public int hashCode() {
return id;
}
@Override
public boolean equals(Object obj) {
if (obj == this) return true;
if (!(obj instanceof Employee)) return false;
Employee e = (Employee)obj;
return this.id == e.id;
}
public static void main(String[] args) {
Employee e1 = new Employee(1, "Tom", 22);
Employee e2 = new Employee(2, "Jerry", 23);
Employee e3 = new Employee(3, "Alice", 24);
HashSet<Employee> employees = new HashSet<>();
employees.add(e1);
employees.add(e2);
employees.add(e3);
// 方法1: 使用迭代器
System.out.println("用迭代器的方式输出员工信息:");
Iterator<Employee> it = employees.iterator();
while (it.hasNext()) {
Employee e = it.next();
System.out.println("员工编号:" + e.id + ",员工姓名:" + e.name + ",员工年龄:" + e.age);
}
// 方法2: 使用增强的for循环
System.out.println("用增强的for循环输出员工信息:");
for (Employee e : employees) {
System.out.println("员工编号:" + e.id + ",员工姓名:" + e.name + ",员工年龄:" + e.age);
}
// 方法3: 使用Lambda表达式
System.out.println("用Lambda表达式输出员工信息:");
employees.forEach((e) -> {
System.out.println("员工编号:" + e.id + ",员工姓名:" + e.name + ",员工年龄:" + e.age);
});
}
}
```
这个代码将创建3个Employee对象,将它们添加到一个HashSet中,并展示如何使用迭代器、增强的for循环和Lambda表达式来输出员工信息。输出结果如下:
```
用迭代器的方式输出员工信息:
员工编号:1,员工姓名:Tom,员工年龄:22
员工编号:2,员工姓名:Jerry,员工年龄:23
员工编号:3,员工姓名:Alice,员工年龄:24
用增强的for循环输出员工信息:
员工编号:1,员工姓名:Tom,员工年龄:22
员工编号:2,员工姓名:Jerry,员工年龄:23
员工编号:3,员工姓名:Alice,员工年龄:24
用Lambda表达式输出员工信息:
员工编号:1,员工姓名:Tom,员工年龄:22
员工编号:2,员工姓名:Jerry,员工年龄:23
员工编号:3,员工姓名:Alice,员工年龄:24
```
希望能够满足您的要求,如果有其他问题,也欢迎随时问我。
阅读全文