向+HashSet+集合中存入对象时需要重写+Object+类中的哪些方法()+toString+()+clone+()+B+equals+(+Objectobj+)
时间: 2023-12-14 10:32:34 浏览: 84
Object类和toString()方法.pptx
为了向HashSet集合中存储对象,需要重写Object类中的equals()和hashCode()方法。equals()方法用于比较两个对象是否相等,而hashCode()方法用于获取对象的哈希码,以便在HashSet中进行查找和比较。如果不重写这两个方法,则HashSet将无法正确地比较和查找对象。
以下是一个示例代码,演示如何向HashSet集合中存储对象:
```java
import java.util.HashSet;
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Person other = (Person) obj;
if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) {
return false;
}
if (this.age != other.age) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 7;
hash = 89 * hash + (this.name != null ? this.name.hashCode() : 0);
hash = 89 * hash + this.age;
return hash;
}
public static void main(String[] args) {
HashSet<Person> set = new HashSet<Person>();
set.add(new Person("Alice", 25));
set.add(new Person("Bob", 30));
set.add(new Person("Charlie", 35));
System.out.println(set);
}
}
```
在上面的示例代码中,我们创建了一个Person类,并重写了equals()和hashCode()方法。然后,我们创建了一个HashSet集合,并向其中添加了三个Person对象。最后,我们打印HashSet集合,以查看存储的对象。
阅读全文