list remove 失效的解决方式

2018-10-08  本文已影响79人  阳光下的美好_6e13

不能使用list直接删除对象,要使用Iterator

 Iterator<CouponsVO> iterator=viewModel.usedCoupons.get().iterator();

        if(couponsVO.isChecked()){
            viewModel.usedCoupons.get().add(couponsVO);
        }else{

            while (iterator.hasNext()) {
                CouponsVO c = (CouponsVO) iterator.next();
                if (couponsVO.getThqNO().equals(c.getThqNO())) {
                    iterator.remove();
                }

            }

            //删除无效
            //viewModel.usedCoupons.get().remove(couponsVO);
            //viewModel.usedCoupons.notifyChange();

           /* 会发生生ConcurrentModificationException异常
            *for(CouponsVO c:viewModel.usedCoupons.get()){
             *   if(c.getThqNO().equals(couponsVO.getThqNO())) viewModel.usedCoupons.get().remove(c);
            }*/
上一篇 下一篇

猜你喜欢

热点阅读