2、使用Sct 实现对工人类Worker 对象的存储和操作。 。定义Worker类。•为Worker 类增加相应的方法,使得Worker放入HashSet中时Set中没有重复 元素,并编写相应的测试代
时间: 2024-10-24 11:05:49 浏览: 37
在Java中,我们可以使用`HashSet`数据结构来实现对`Worker`对象的存储和操作,因为它自动去除了集合中的重复元素。首先,我们需要定义`Worker`类,包含一些基本属性比如名字、ID等,以及用于比较是否相等的方法,这是`HashSet`判断唯一性的关键。
```java
import java.util.HashSet;
import java.util.Set;
// 定义 Worker 类
class Worker {
private String id;
private String name;
public Worker(String id, String name) {
this.id = id;
this.name = name;
}
// 重写 equals 和 hashCode 方法,以支持 HashSet 的唯一性
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Worker worker = (Worker) obj;
return id.equals(worker.id);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
// 其他可能的方法,如获取信息、工作描述等
public String getName() { return name; }
public String getId() { return id; }
// 添加到 HashSet 中的方法
public void addToUniqueSet(Set<Worker> uniqueSet) {
if (!uniqueSet.contains(this)) {
uniqueSet.add(this);
}
}
}
// 测试代码示例
public class Main {
public static void main(String[] args) {
Set<Worker> workers = new HashSet<>();
Worker worker1 = new Worker("001", "Alice");
Worker worker2 = new Worker("002", "Bob");
workers.add(worker1); // 添加第一个工人,不会重复
workers.add(worker2);
// 添加重复的worker,由于equals和hashCode已覆盖,会忽略
workers.add(new Worker("001", "Alice"));
System.out.println(workers.size()); // 输出2,因为只有两个唯一的Worker实例
// 检查某个worker是否已经存在于集合中
boolean isPresent = workers.contains(new Worker("002", "Bob"));
System.out.println(isPresent); // 输出true
}
}
```
阅读全文