1、定义一个Teacher类 name 和 age两属性
2、循环创建n(假设为5)个Teacher对象,(
name teacher1 age 10
name teacher2 age 20
name teacher3 age 30
name teacher4 age 40
name teacher5 age 50
)
3、分别添加到set容器对象中
4、把set容器对象删除一个与传入内容匹配的对象(name teacher3 age 30)
提示!删除的时候,根据对象内容相同认为是相同对象,怎么判断对象内容相同?重写object某方法!
2、循环创建n(假设为5)个Teacher对象,(
name teacher1 age 10
name teacher2 age 20
name teacher3 age 30
name teacher4 age 40
name teacher5 age 50
)
3、分别添加到set容器对象中
4、把set容器对象删除一个与传入内容匹配的对象(name teacher3 age 30)
提示!删除的时候,根据对象内容相同认为是相同对象,怎么判断对象内容相同?重写object某方法!
5、两种方式遍历set对象
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
public class Test1 {
public static void main(String[] args) {
Set<Teacher> set=new HashSet<Teacher>();
for(int i=1;i<=5;i++){
Teacher t=new Teacher("teacher"+i,10*i);
set.add(t);
}
Teacher t1=new Teacher("teacher3",30);
set.remove(t1);
System.out.println(t1);
for(Teacher temp:set){
System.out.println(temp);
}
System.out.println("------------");
for(Iterator<Teacher> iter=set.iterator();iter.hasNext();){
Teacher temp=iter.next();
System.out.println(temp);
}
}
}
class Teacher{
String name;
int age;
public Teacher(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "\nTeacher [name=" + name + ", age=" + age + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Teacher other = (Teacher) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}