发布网友 发布时间:2022-04-21 00:08
共4个回答
热心网友 时间:2023-07-17 14:37
你只要直接使用list接口的public boolean remove(Object o);方法就OK了.
你的问题很简单..正常来说,你的session里存的users对象是不是跟application里的users存放的是同一个对象...如:
Users u = new ...();
session.setAttribute("users",u);
List us = application.getAttribute("users");
us.add(u);
如果是以上形式...说明2个地方是同一个对象..可以直接使用 list.remove方法就OK了.
如果 有可能不是同一个对象..而是getUserId值一样的话..你可以给Users类overrides一个方法equals方法.
如:
class Users{
.....//已经写的代码
public boolean equals(Object o){
return o==null?false:o==this?true:o instanceof Users?getUserId()==((Users)o).getUserId():false;
}
list的另一个remove方法
public boolean remove(Object o)从此列表中移除指定元素的单个实例(如果存在),此操作是可选的。更正式地说,如果列表包含一个或多个满足 (o==null ? e==null : o.equals(e)) 的元素 e,
热心网友 时间:2023-07-17 14:37
userList.remove(i); //i代表list里面的位置..删除这个位置的就可以
如果list里面只有一个是相同的..提高效率可以在后面加个break;
if(u.getUserID()==as){ //就在有问题 如何写呢?
userList.remove(i);
break;
}
热心网友 时间:2023-07-17 14:38
userList.remove(i);
if(u.getUserID()==user.getUserID())你这样写。
热心网友 时间:2023-07-17 14:38
看你的代码没有问题啊,最好把错误提示贴出来!
还有你的Users类里的userID是什么类型的,会不会是类型不一致!