类User重载方法equals.
public boolean equals(Object object){
if(object instanceof User){
User user = (User)object;
// 我这里是用id来比较,如果User没有id属性,也有用账号、身份证号等属性来比较。
return user.getId().equalsIgnoreCase(this.id);
}else{
return false;
}
}
从List中删除某个对象,是要调用对象的equals方法,和List中的对象相比较,相等才删除。如果不重装equals方法,那么调用的就是父类Object的equals方法,这样是用 == 相判断相等的。只有两个变量指向的是同一个对象,== 判断才会相会。
String s1 = new String("a");
String s2 = new String("a");
s1 == s2 为false.
s1.equals(s2) 为 true.
如果是这样,建议你重载hashCode方法。否则,当你用User对象作为Key放到HashMap中时,还会出现问题。
1、使用List的前提条件是:必须重写equals和hashcod方法,String等类都给你写好了 你可以不写;但是,你自己定义的类要重写;
2、当你用iterator遍历取直的时候,必须用iterator里的remove方法删除东西,而不是Collection里的remove方法,否则有可能出错,但不是一定出错。
看看你romveAll方法里面的条件
如果是if(项目经理.equals(b.getint(i)))
b.romve(i)
的话就可能出错
建议改成if(项目经理.getID().equals(b.getInt(i).getID()))
b.romve(i)
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....