Java创建对象并使用接口方法实现操作
(1) 创建一个Person的类,类中包含id, name, sex等其它的一些属性。并重写Person类equals()和hashCode()两个方法,要求通过id来判断对象是否相等。
(2) 编写用户程序TestSet使用Set接口来保存Person对象,并将Set中的对象使用迭代器迭代出来。并利用下列方法从集合中删除编号为5的Person对象:
a) 利用集合的remove(o):此方法要求用传入要删除的对象,只要利用相等的概念,然后作为remove方法的参数即可。
b) 利用迭代器的remove():在迭代的过程中,判断迭代器当前的对象的编号是否为5,是就调用迭代器的remove()方法删除,然后跳出迭代器的循环。
Person类:
package 考试;
public class Person {
public int id;
public String name;
public String sex;
public Person(int id,String name,String sex) {
this.id = id;
this.name = name;
this.sex = sex;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (id != other.id)
return false;
return true;
}
}
Testset类
package 考试;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class TestSet {
public static void main(String[] args) {
Set set = new HashSet();
Person s1 = new Person(1,“张三”,“男”);
Person s2 = new Person(2,“张五”,“女”);
Person s3 = new Person(3,“张六”,“男”);
Person s4 = new Person(4,“张器”,“女”);
Person s5 = new Person(5,“张八”,“男”);
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
set.add(s5);
Iterator iter1 = set.iterator();
while (iter1.hasNext()) {
System.out.println(iter1.next());
}
// set.remove(s5);
// for(Iterator it=set.iterator();it.hasNext()😉{
// Person b=(Person)it.next(); //在做判断之后迭代器已经更新了,因此删除的是迭代器左边的元素。
// if(b.id==5)
// it.remove();
// }
System.out.println(set.size());
}
}