实验内容:
编写Student类, 将多个Student类型的对象放到HashSet中存放,并尝试删除和检验HashSet中是否含有某个对象。
编码实现:
package com.abc;
import java.util.HashSet;
class Student implements Comparable <Student>{
static final int TableSize = 10459; //素数;
private String Name;
private String Id; //长度为10;
public Student(String na, String id) {
Name = na;
Id = id;
}
public int hashCode() {
int hashValue = Integer.parseInt(Id) % TableSize;
return hashValue;
}
public boolean equals(Object obj) {//注意这儿是传入的Object obj 不是Student;
Student stu = (Student)obj;
if(this == obj)
return true;
if(stu.hashCode() != this.hashCode())
return false;
if(this.Id.equals(stu.Id))
return true;
return false;
}
public int compareTo(Student stu) {
return 1;
}
public String toString() {
return "Id is " + Id + "Name is " + Name;
}
}
public class TestHashSet {
public static void main(String []args) {
HashSet <Student> StuHS = new HashSet<Student>();
Student stu1 = new Student("小明", "1000000001");
Student stu2 = new Student("小红", "1000000002");
StuHS.add(stu1);
StuHS.add(stu2);
System.out.println(StuHS);
System.out.println(StuHS.remove(new Student("小明", "1000000001")));
StuHS.add(stu1);
System.out.println(StuHS.remove(stu1));
System.out.println(StuHS.contains(new Student("小红", "1000000002")));
}
}