Cheug's Blog

当前位置:网站首页 / JAVA / 正文

Map报错:java.util.ConcurrentModificationException

2019-09-10 / JAVA / 928 次围观 / 0 次吐槽 /

ConcurrentModificationException : 并发修改异常

for (Map.Entry<Product,Integer> entry : cart.entrySet()){
    if (product.equals(entry.getKey())){//存在商品
        cart.remove(entry.getKey());//更新key
        //判断库存
        if (num <= 0){
            break;
        }
        if (product.getPnum() >= num) {//库存大于购买数量
            cart.put(product,num);
        }else{
            cart.put(product,product.getPnum());
        }
        break;
        /*
        如果这里不跳出,将会报错 java.util.ConcurrentModificationException
        因为 cart.remove(entry.getKey()) 删除cart的内容,影响了map结构
        所以一旦修改 立即跳出循环 或者 使用entry 迭代器本身entry.remove()来删除
         */
    }
}


Powered By Cheug's Blog

Copyright Cheug Rights Reserved.