下面是我写的函数 直接remove(obj)和遍历的方式remove(obj)都无效 而且数据已经添加进去了 但是直接remove(int)的方式去掉第几项就可以,想问一下这里是什么原因啊?
public void removefromList(Item obj) {
synchronized (this) {
Log.e("Queue","dosearch");
for (int i = 0; i < playedList.size(); i++) {
if (list.get(i) == obj) {
list.remove(i);
Log.e("Queue","remove");
i--;
}
}l
// list.remove(obj);
}
}
第二句话没有打印 就是没有找到集合里相同的OBJ 但是明明已经存在了的
你这样一边遍历列表一边删除列表元素是有问题的,你可以直接判断列表中是否包含某个对象,直接删除例如if(list. contains(obj)){list. remove(obj);}